2017-05-27 21 views
0

我在展示媒体播放器时遇到了问题。 1)隐藏媒体控制器后仅显示媒体控制器3秒钟。 2)媒体控制器应该只在活动关闭或后退按钮按下时销毁。 3)媒体控制器正在查看我想要更改媒体控制器查看位置的活动的底部。如何显示媒体控制器直到歌曲结束?

public void audioplayer(View view) 
{ 
    mediaController = new MediaController(this); 


    if(mediaPlayer.isPlaying()) 
    { 
     mediaPlayer.stop(); 
    } 

    mediaPlayer.reset(); 
    try { 
     mediaPlayer.setDataSource(path); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    try { 
     mediaPlayer.setOnPreparedListener(this); 
     mediaPlayer.prepare(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 
public void onPrepared(MediaPlayer mediaPlayer) { 

    mediaPlayer.start(); 

    Log.d(TAG, "onPrepared"); 
    mediaController.setMediaPlayer((MediaController.MediaPlayerControl) this); 
    mediaController.setAnchorView(findViewById(R.id.main_audio_view)); 

    handler.post(new Runnable() { 
     public void run() { 
      mediaController.setEnabled(true); 
      mediaController.show(); 
     } 
    }); 
} 




@Override 
protected void onStop() { 
    super.onStop(); 
    mediaController.hide(); 
    mediaPlayer.stop(); 
    mediaPlayer.release(); 
} 


@Override 
public boolean onTouchEvent(MotionEvent event) { 
    //the MediaController will hide after 3 seconds - tap the screen to make it appear again 
    mediaController.show(); 
    return false; 
} 

//--MediaPlayerControl methods---------------------------------------------------- 
public void start() { 
    mediaPlayer.start(); 
} 

public void pause() { 
    mediaPlayer.pause(); 
} 

public int getDuration() { 
    return mediaPlayer.getDuration(); 
} 

public int getCurrentPosition() { 
    return mediaPlayer.getCurrentPosition(); 
} 

public void seekTo(int i) { 
    mediaPlayer.seekTo(i); 
} 

public boolean isPlaying() { 
    return mediaPlayer.isPlaying(); 
} 

public int getBufferPercentage() { 
    return 0; 
} 

public boolean canPause() { 
    return true; 
} 

public boolean canSeekBackward() { 
    return true; 
} 

public boolean canSeekForward() { 
    return true; 
} 

@Override 
public int getAudioSessionId() { 
    return 0; 
} 
//-------------------------------------------------------------------------------- 

媒体控制器。在上面的代码,媒体控制器显示只有三个seconds.please帮助我如何解决这一信息。媒体播放器应该显示,直到歌曲结束,也媒体控制器应只隐藏当活动被摧毁时。

回答

0

public boolean onTouchEvent(MotionEvent event)中的return语句更改为true。并删除if(mediaPlayer.isPlaying()) { mediaPlayer.stop(); } 我也是新来的android希望它帮助..

+0

仍然问题没有解决。 –