2011-11-24 118 views
0

我正在使用以下代碼在我的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

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()在視頻中來回切換。

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

這爲我工作