Не се показват контролни бутони в мултимедийния плейър

Нов съм в Android и се опитвам да направя наистина просто приложение. Това е само една дейност, която съдържа MediaPlayer за възпроизвеждане на аудио или видео файлове. Успях да пусна песен, но тя просто не иска да ми покаже контролните елементи на мултимедийния плейър!

Ето кода, който използвам:

public class Player extends Activity implements OnPreparedListener,
        MediaPlayerControl {

    private static final String TAG = "AudioPlayer";
    public static final String AUDIO_FILE_NAME = "audioFileName";

    private String audioFile;
    private MediaPlayer mediaPlayer;
    private Handler handler = new Handler();
    private MediaController mediaController;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_player);



        Uri myUri = Uri.parse("android.resource://com.example.mediaplayer/"
                + R.raw.lied); // initialize Uri here
        MediaPlayer mediaPlayer = new MediaPlayer();

        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mediaController = new MediaController(this);
        try {
            mediaPlayer.setDataSource(getApplicationContext(), myUri);
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            mediaPlayer.prepare();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        mediaPlayer.start();

    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.player, menu);
        return true;
    }

    public void onPrepared(MediaPlayer mediaPlayer) {
        Log.d(TAG, "onPrepared");
        mediaController.setMediaPlayer(this);
        mediaController.setAnchorView(findViewById(R.id.mediaController1));

        handler.post(new Runnable() {
            public void run() {
                mediaController.setEnabled(true);
                mediaController.show();
            }
        });
    }

    protected void onStop() {
        super.onStop();
        mediaPlayer.stop();
        mediaPlayer.release();
    }

    public boolean onTouchEvent(MotionEvent event) {
        // the MediaController will hide after 3 seconds - tap the screen to
        // make it appear again
        mediaController.show();
        return false;
    }

    public boolean canPause() {

        return true;
    }

    public boolean canSeekBackward() {

        return true;
    }

    public boolean canSeekForward() {

        return true;
    }

    public int getBufferPercentage() {

        return 0;
    }

    public int getCurrentPosition() {
        return mediaPlayer.getCurrentPosition();
    }

    public int getDuration() {
        return mediaPlayer.getDuration();

    }

    public boolean isPlaying() {
        return mediaPlayer.isPlaying();

    }

    public void pause() {
        mediaPlayer.pause();

    }

    public void seekTo(int i) {
        mediaPlayer.seekTo(i);

    }

    public void start() {
        mediaPlayer.start();

    }
}

И ето моят XML оформление:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Player" >

    <MediaController
        android:id="@+id/mediaController1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="122dp"
        android:layout_marginTop="55dp"
        android:visibility="visible" >

    </MediaController>

    <VideoView
        android:id="@+id/videoView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

</RelativeLayout>

person user2277099    schedule 13.04.2013    source източник


Отговори (1)


Мисля, че това, което търсите, е видеоизглед в Android. Има контроли по подразбиране при възпроизвеждане на мултимедия.

Създайте видео изглед във вашата папка с XML оформление по следния начин:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">
<VideoView
   android:id="@+id/myvideoview"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content" />
</LinearLayout>

Да приемем, че сте нарекли този файл main.xml

Сега създайте дейност, наречена MediaViewerTest.java по следния начин:

public class MediaViewerTest extends Activity {

String SrcPath = http://myMediaFile.mp3"; // or however your getting your media source, im assuming web here

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       VideoView myVideoView = (VideoView)findViewById(R.id.myvideoview);
       myVideoView.setVideoURI(Uri.parse(SrcPath));
       myVideoView.setMediaController(new MediaController(this));
       myVideoView.requestFocus();
       myVideoView.start();
   }
}
person j2emanue    schedule 13.04.2013
comment
Не може да възпроизвежда mp3... ще опитам с видео и ще ви уведомя дали работи - person user2277099; 13.04.2013
comment
винаги казва, че не мога да пусна това видео, не знам какво не е наред, опитах mp3 и mp4. използвам емулатора за тестване, ако това е важно! - person user2277099; 13.04.2013