gpt4 book ai didi

java - 带有媒体播放器的应用程序强制关闭

转载 作者:行者123 更新时间:2023-12-02 08:24:57 25 4
gpt4 key购买 nike

case R.id.btn7:
if (mp != null && mp.isPlaying()) mp.stop();
mp = MediaPlayer.create(a.this, R.raw.aaaa);
mp.start();
break;
case R.id.btn8:
if (mp != null && mp.isPlaying()) mp.stop();
mp = MediaPlayer.create(a.this, R.raw.bbbb);
mp.start();
break;

如何使用 setDataSource 来停止我的应用程序以强制关闭?请帮忙!如果我像这样使用它,Eclipse 会突出显示红色 setDataSource;

public void onClick(View v) {
switch(v.getId()) {
case R.id.btn:
if (mp != null && mp.isPlaying()) mp.stop();
mp.setDataSource(zoo.this,R.raw.gata);
mp.prepare();
mp.start();
break;

最佳答案

好吧,实际上我一直在为我一直在做的一个爱好项目做类似的事情。在阅读了 MediaPlayer 文档一段时间后,这是我想出的方法(请注意,这是为了一次只播放一个声音):

首先,我创建了一个重写的 Application 类来保存我的全局变量——在本例中,我的单个 MediaPlayer 对象:

public class GlobalVars extends Application {
private static MediaPlayer mp = new MediaPlayer();

public static MediaPlayer getMediaPlayer() {
return mp;
}
}

一旦应用程序启动,就会创建一个 MediaPlayer 实例。它也是静态的,因此无需实例化该类即可使用。

现在,在我的主类中(特别是在我的 onClick 方法中),我检索此实例,重置它,设置我的数据源,准备播放,然后启动它:

MediaPlayer mp = GlobalVars.getMediaPlayer();

//note that in my case, item is an object of mine that
//contains an AssetFileDescriptor, which you can get by
//calling getAssets().openFd("filename.mp3");
AssetFileDescriptor afd = item.getDescriptor();

mp.reset();
//leaving out the try/catch block for conciseness
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mp.prepare();
mp.start();

关于java - 带有媒体播放器的应用程序强制关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4712688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com