Java 如何在android的mainActivity之外使用MediaPlayer(如何从mainActivity调用它)
我试图创建一个简单的应用程序,为此我必须有一个不在主活动中的mediaPlayer。我如何做到这一点?(它需要是什么类型的类,以及如何编写方法并在main中实例化它)。 我对安卓系统很陌生,不知道怎么做(可能很简单…)Java 如何在android的mainActivity之外使用MediaPlayer(如何从mainActivity调用它),java,android,media-player,Java,Android,Media Player,我试图创建一个简单的应用程序,为此我必须有一个不在主活动中的mediaPlayer。我如何做到这一点?(它需要是什么类型的类,以及如何编写方法并在main中实例化它)。 我对安卓系统很陌生,不知道怎么做(可能很简单…) 任何帮助都会很好。谢谢你 您可以创建这样一个类,以便在每个活动中使用: public class MediaPlayerUtil { public static void playSound(Context context, int soundFileResId) {
任何帮助都会很好。谢谢你 您可以创建这样一个类,以便在每个活动中使用:
public class MediaPlayerUtil {
public static void playSound(Context context, int soundFileResId) {
MediaPlayer mp = MediaPlayer.create(context, soundFileResId);
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.reset();
mp.release();
mp=null;
}
});
mp.start();
}
}
然后在任何活动中,只需调用
MediaPlayerUtil.playSound(这个,R.raw.your\u sound\u文件)
,其中将引用您的活动,并通过R.raw.your\u sound\u文件引用项目/res/raw目录中的文件。这是一个简单应用程序的示例,要求您只需创建文件夹raw,音频所在的位置。
mysong将文件替换为音频的名称
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button play, stop;
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play = (Button)findViewById(R.id. play);
stop = (Button)findViewById(R.id.stop);
play.setOnClickListener(this);
stop.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.play:
play();
break;
case R.id.stop:
stop();
break;
}
}
private void play (){
destruir();
mp = MediaPlayer.create(this, R.raw.mysong);
mp.start();
}
private void stop(){
mp.stop();
}
private void destruir(){
if (mp !=null)
mp.release();
}
}
你必须向我们展示你在解决这个问题上的努力。StackOverflow不是一个“代码订单”网站?你认为有什么可能的解决办法?你有没有试过在其他地方寻找这个答案?首先尝试使用服务谢谢你的回答。第二,是否可以在MediaPlayerUtil中指定文件名(我想从选择中随机设置)?是的,当然可以。您可以在MediaPlayerUtil类中为您的声音指定一个资源ID列表,并在每次调用时随机选择一个。