因此,基本上MediaPlayer正在播放我想要的音乐。我遇到的问题是试图让它释放onBackPress(),以便1)它停止播放,2)它从内存中释放它。这是我目前使用的代码。MediaPlayer流媒体音乐后按下时强制关闭
public class Audio extends Activity {
MediaPlayer mp,lastPlayed;
String song = "http://www.pocketjourney.com/downloads/pj/tutorials/audio.mp3";
int playClick=0;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.audio);
mp = new MediaPlayer();
lastPlayed = new MediaPlayer();
final Button song1 = (Button)findViewById(R.id.song);
song1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(playClick%2==0){
song1.setBackgroundResource(R.drawable.button_pause);
try {
mp.setDataSource(song);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
playClick++;
lastPlayed = mp;
}
else if (playClick%2==1){
song1.setBackgroundResource(R.drawable.button_play);
mp.pause();
playClick=0;
}
}
});
}
public void onBackPressed(){
mp.pause();
mp.release();
finish();
}
}
下面是输出我从日志猫得到。
09-02 22:35:05.167: ERROR/ActivityManager(1086): ANR in com.fallacystudios.talent (com.fallacystudios.talent/.Audio)
09-02 22:35:05.167:ERROR/ActivityManager(1086):原因:keyDispatchingTimedOut 09-02 22:35:05.167:ERROR/ActivityManager(1086):负载:1.57/0.74/0.35 09-02 22:35:05.167:错误/ ActivityManager(1086):CPU使用率从9503ms到2795ms前: 09-02 22:35:05.167:ERROR/ActivityManager(1086):mediaserver:17%= 15%user + 1%内核/故障:17次 09-02 22:35:05.167:ERROR/ActivityManager(1086):ystudios.talent:17%= 16%用户+ 0%内核/故障:7次 09-02 22 :35:05.167:ERROR/ActivityManager(1086):system_server:7%= 4%用户+ 2%内核/故障:5次 09-02 22:35:05.167:ERROR/ActivityManager(1086):qtouch_obp_ts_w:0%= 0%用户+ 0%内核 09-02 22:35:05.167:错误/ ActivityManager(1086):battd:0%= 0%user + 0%kernel/faults:3次要 09-02 22:35:05.167:错误/ ActivityManager(1086):dsi:0%= 0%用户+ 0%内核 09-02 22:35:05.167:ERROR/ActivityManager(1086):omap2_mcspi:0 %= 0%用户+ 0%内核 09-02 22:35:05.167:错误/ ActivityManager(1086):putmethod.latin:0%= 0%用户+ 0%内核/故障:79次要1主要 09- 02 22:35:05.167:ERROR/ActivityManager(1086):m.android.phone:0%= 0%user + 0%kernel 09-02 22:35:05.167:ERROR/ActivityManager(1086):TOTAL:35 %= 29%user + 5%kernel + 0%irq + 0%softirq 09-02 22:37:19.863:ERROR/Tethering(1086):尝试移除未知iface(usb0),忽略 09-02 22:48:24.214:ERROR/Tethering(1086):试图删除未知的iface(usb0),忽略 09-02 22:49:44.269:ERROR/MediaPlayer(10964):暂停在状态1中调用
I在onBackPressed中尝试了它,而没有停顿()。不知道是否会有帮助,但认为这是值得一试。它是这样发生的。我点击播放音乐......音乐播放就好了......我按下后退按钮(大多数时候它是第一次播放它应该的),然后我再次播放音乐(工作正常),然后我再按一次,它会延迟片刻,然后强制关闭。即使没有强制关闭,延迟也会发生。我最终希望有很多按钮来播放差异歌曲,在这种情况下,我会在下一个发行版中播放最后一个。如果发布不起作用,或者在继续前进之前我想找到另一个问题。感谢和任何和所有帮助表示赞赏。我也很感激你花时间阅读这个漫长的事情。保重。
你有什么或知道如何制作我需要的线程的任何好例子?谢谢,我会修复onStop部分。 – steven
[进程和线程](http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html) –
谢谢,我很感激。我试图让线程工作,当他们不为我工作时,我只是尝试了onStop修复,这实际上导致它单独工作。我会看看你发布的这个主题,因为我确信它会很快再次出现,所以感谢你的帮助。 – steven