Android与控制器播放视频

问题描述:

我正在使用以下代码在我的Android设备上播放.mp4视频。我当我按下设备上的后退按钮使用此代码有3个问题,Android与控制器播放视频

  1. 声音仍然continoue发挥

  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(); 
    

1)覆盖onBackPressed您的活动:

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

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

R.drawable.video 

我不认为这样会奏效,你不能从那里播放视频。改为使用resources/raw文件夹。顺便说一句:音频可以从资产文件夹直接播放,而视频不能;视频只能从原始文件夹播放,或者如果您将其复制到应用程序文件文件夹(getFilesDir()) - 或当然sdcard。

3)为什么使用VideoView和MediaPlayer,而不仅仅是VideoView?你应该摆脱mediaPlayer,并使用VideoView。这条线

videoHolder.setMediaController(new MediaController(this)); 

看起来是正确的,并设置媒体控制器,用户可以在视频中寻找。 通过编程方式,您还可以使用seekTo()在视频中来回切换。

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(); 

这为我工作