2013-03-23 2 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

해결 했습니까? –

+0

이 문제가 해결되었습니다. – iAviatorJose

답변

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