音乐无法重放

IEEEITU 2010-11-09 04:12:42
 final MediaPlayer mp=MediaPlayer.create(this, R.raw.beyond);

//播放的监听事件
play.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mp.start();
}
});

//暂停的监听事件
pause.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mp.pause();
}
});

//停止的监听事件
stop.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

//mp.stop();

mp.reset();

try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
});


播放、暂停没问题,就是stop以后再play就没反应了,我是按照SDK写的啊
...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
IEEEITU 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dinjay 的回复:]
那就这样:
stop->prepare->start
[/Quote]

搞定了。stop()之后再reset(),然后使用静态方法create()获取MediaPlayer对象

我主要是用一个play按钮来完成第一次启动、暂停后的继续播放和停止之后的重新播放
IEEEITU 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dinjay 的回复:]
那就这样:
stop->prepare->start
[/Quote]

我试了,这样的话stop就和pause一样,是暂停,而不是停止
dinjay 2010-11-09
  • 打赏
  • 举报
回复
那就这样:
stop->prepare->start
IEEEITU 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dinjay 的回复:]
具体你可以看sdk里有个流程图, 写的很清楚调用顺序
[/Quote]
我试了,stop之后,play还是没反应
SDK里这样说的:
To stop playback, call stop(). If you wish to later replay the media, then you must reset() and prepare() the MediaPlayer object before calling start() again
dinjay 2010-11-09
  • 打赏
  • 举报
回复
具体你可以看sdk里有个流程图, 写的很清楚调用顺序
dinjay 2010-11-09
  • 打赏
  • 举报
回复
直接调用stop后再去start就没问题
dinjay 2010-11-09
  • 打赏
  • 举报
回复
sdk里说了,reset后会置回uninitialize的状态,相当于没有create

80,488

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧