暂停 MP3 后 MediaPlayer 继续播放
MediaPlayer continue streaming after pause MP3
我正在使用 MediaPlayer 进行流式传输,问题是当用户返回到开关盒时它不会恢复,每次用户切换回来时它只是从头开始播放,谢谢我真的需要你们的帮助:)
@Override
public void onCheckedChanged(RadioGroup rg, int i) {
int rIds = rGroup.getCheckedRadioButtonId();
switch (rIds){
case R.id.btn:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn1:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn2:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn3:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn4:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn5:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn6:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn7:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn8:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn9:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn10:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
}
}
private void streamMp3(String u) {
try {
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.setDataSource(u);
mPlayer.setLooping(true);
mPlayer.prepareAsync();
mPlayer.setOnPreparedListener(this);
} catch (Exception e) {
}
}
而不是使用 reset()
方法使用 pause()
mPlayer.reset();重置您的媒体播放器,这意味着播放器开始 again.use mPlayer.stop();停止媒体播放器或 mPlayer.pause();暂停播放器
我正在使用 MediaPlayer 进行流式传输,问题是当用户返回到开关盒时它不会恢复,每次用户切换回来时它只是从头开始播放,谢谢我真的需要你们的帮助:)
@Override
public void onCheckedChanged(RadioGroup rg, int i) {
int rIds = rGroup.getCheckedRadioButtonId();
switch (rIds){
case R.id.btn:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn1:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn2:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn3:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn4:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn5:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn6:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn7:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn8:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn9:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
case R.id.btn10:
if(mPlayer.isPlaying()) {
loadProgress();
mPlayer.reset();
streamMp3(CLASS.staticMethodforURL);
}else{
loadProgress();
streamMp3(CLASS.staticMethodforURL);
}
break;
}
}
private void streamMp3(String u) {
try {
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.setDataSource(u);
mPlayer.setLooping(true);
mPlayer.prepareAsync();
mPlayer.setOnPreparedListener(this);
} catch (Exception e) {
}
}
而不是使用 reset()
方法使用 pause()
mPlayer.reset();重置您的媒体播放器,这意味着播放器开始 again.use mPlayer.stop();停止媒体播放器或 mPlayer.pause();暂停播放器