2013-03-23 28 views
6

下午好/晨!希望有人能幫助我解決我遇到的一個小問題。我打使用VideoView和一個自定義MediaController遠程.MP3文件。的Android VideoView播放控件顯示「播放」起初,而不是「暫停」,即使文件已在播放

我的MediaController看起來是這樣的:

public class MyMediaController extends MediaController { 

public MyMediaController(Context context) { 
    super(context);  
} 

// Do nothing on the overridden hide method so the playback controls will never go away. 
@Override 
public void hide() { 

} 

// Override the dispatchKeyEvent function to capture the back KeyEvent and tell the activity to finish. 
@Override 
public boolean dispatchKeyEvent(KeyEvent event) 
{ 
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) 
    { 
     ((Activity) getContext()).finish(); 
    } 

    return super.dispatchKeyEvent(event); 
} 

}

而我的代碼,將其連接到我的VideoView看起來是這樣的:

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

    // Use our own media controller, which inherits from the standard one. Do this to keep 
    // playback controls from disappearing. 
    mediaController = new MyMediaController(this); 
    mediaController.setAnchorView(videoView); 

    Uri video = Uri.parse(URL); 

    videoView.setMediaController(mediaController); 
    videoView.setVideoURI(video); 

    // Set a handler that will show the playback controls as soon as audio starts. 
    videoView.setOnPreparedListener(new OnPreparedListener() { 

     @Override 
     public void onPrepared(MediaPlayer arg0) { 

      mediaController.show(); 
     } 

    }); 

    videoView.start(); 

我遇到的問題是,當MP3播放文件開始播放,在底部的控制條具有「播放」按鈕表示(即三角形),而不是「暫停」按鈕(兩根平行杆),即使該音頻是已經在玩。有人知道怎麼修這個東西嗎?

編輯1:

我也很想在任何其他的解決方案,用於播放遠程MP3播放。唯一的要求我必須是用戶可以暫停/播放音頻,也看到音頻文件(名稱)的名稱。

謝謝!

+2

你解決這個問題? – 2013-05-11 13:57:24

+0

已解決此問題 – iAviatorJose 2015-04-13 05:15:15

回答

0

簡單:

@Override 
     public void onPrepared(MediaPlayer arg0) { 

     if (mediaController.isShowing==false) {mediaController.show();} 
     } 
3

試試這個:它解決了問題對我來說。

mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mp) { 
     mp.start(); 
     mMediaController.show(); 
    } 
});