IM尝试创建一个简单的应用程序,为此我必须有一个不在mainActivity中的mediaPlayer。我该怎么做?(在什么类中需要它以及如何编写方法并在main中实例化它)。 我对Android很新,并且不知道如何做到这一点(它可能非常简单......) 任何帮助都会很棒。谢谢你!
答案 0 :(得分:1)
您可以在每个Activity中创建这样的类:
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();
}
}
然后在任何Activity内部调用MediaPlayerUtil.playSound(this, R.raw.your_sound_file)
,这将是对您的活动的引用,并通过R.raw.your_sound_file引用项目的/ res / raw目录中的文件。
答案 1 :(得分:0)
这是一个简单的应用程序的示例,例如要求创建文件夹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();
}
}