Android用控制器播放视频

时间:2011-11-24 00:16:10

标签: android video controls playback

我正在使用以下代码在我的Android设备上播放.mp4视频。我有3个问题,

  1. 当我按下设备上的后退按钮时,使用此代码仍会继续播放声音

  2. 它不播放视频,只播放声音!

  3. 我不知道如何获取视频的控制器,以便用户可以停止视频,在视频上来回切换。

    VideoView videoHolder = new VideoView(this);
    videoHolder.setMediaController(new MediaController(this));
    getWindow().setFormat(PixelFormat.TRANSLUCENT);    
    MediaPlayer mediaPlayer = new MediaPlayer();
    Uri myUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.video);
    
    videoHolder.setVideoURI(myUri);
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mediaPlayer.setDataSource(getApplicationContext(), myUri);
    mediaPlayer.prepare();      
    mediaPlayer.start();
    
    videoHolder.requestFocus();
    videoHolder.start();
    

2 个答案:

答案 0 :(得分:1)

1)在您的活动中覆盖onBackPressed:

@Override
public void onBackPressed() {
    mediaPlayer.stopPlayback();
    super.onBackPressed();        
}

2)这是一种有效的视频格式吗?您使用的是模拟器还是真正的设备?如果您使用模拟器,请尝试使用真实设备。我之前记得类似的问题。 但我也注意到了:你把你的视频放在了可绘制的文件夹中吗?

R.drawable.video

我认为这不起作用,你不能从那里播放视频。请改用resources/raw文件夹。顺便说一句:音频可以直接从资源文件夹播放,而视频则不能;视频只能从原始文件夹播放,或者如果您将其复制到apps文件夹(getFilesDir()) - 或者当然是SD卡。

3)为什么使用VideoView和MediaPlayer而不仅仅是VideoView?你应该摆脱mediaPlayer,只需使用VideoView。这一行

videoHolder.setMediaController(new MediaController(this));

看起来正确并设置媒体控制器,用户可以在视频中查找。 以编程方式,您还可以使用seekTo()在视频中来回播放。

答案 1 :(得分:0)

    VideoView videoView =(VideoView)findViewById(R.id.vv01);

    //specify the location of media file
    Uri myUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.login_footage);

    //Setting MediaController and URI, then starting the videoView
    videoView.setVideoURI(myUri);
    videoView.requestFocus();
    videoView.start();

这对我有用

相关问题