【发布时间】:2013-12-24 02:59:16
【问题描述】:
我正在创建一个音板,单击大约 30 种不同的声音后它停止工作;我相信android内存不足。下面是我的代码。如何实现 .release() 以便在播放完声音后释放它?我真的不在乎两件事是否同时播放。为了实现这一点,剪辑太短了。我只想得到我的代码集。
public class soundPageOne extends Activity {
public void onCreate(Bundle savedState) {
super.onCreate(savedState);
setContentView(R.layout.soundsone);
final MediaPlayer pg1 = MediaPlayer.create(this, R.raw.peter1);
Button playSound1 = (Button) this.findViewById(R.id.peter1Button);
playSound1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pg1.start();
}
});
我已经做了很多搜索,但由于我缺乏 java/android 知识,我无法得到任何工作。在此先感谢,如果有人需要更多代码,请告诉我。
【问题讨论】:
-
试试这个方法onCompletion(MediaPlayer mp)在音频完成时很有帮助
-
是的,我目前正在尝试。当我将它与 mp.release() 一起使用并尝试重播按钮时,类崩溃。有什么想法吗? @Sanket990
-
实际上 mp.release() 意味着您正在释放媒体播放器对象。你不能重新开始(mp.play())调用播放。
-
你可以在再次成为对象 mp.prepare() 和 mp.start() 之后应用 oncompletion -onstop() 方法
-
在 onCompletion() 中设置所有下面的东西添加下面的方法 mp.reset(); mp.setDataSource(MEDIA_PATH); mp.prepare(); mp.start();
标签: java android release android-mediaplayer