在Android上播放声音
我在第一次应用程序旅程中遇到了另一个错误:)我想在应用程序加载时播放声音。这是一个.wav文件。它持续2秒,但当我在旧三星S4上运行应用程序时,它不会播放。 IDE中没有任何错误,或者我可以看到的任何错误,我检查过“mp”是否有值并且确实如此。环顾职位,大多数人都有'mp'= null的问题。而我的价值只是没有声音从电话里出来......再次,任何帮助表示赞赏!在Android上播放声音
public class OpeningScreen extends Activity {
@Override
// create the screen state
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// connect the xml layout file
setContentView(R.layout.activity_opening_screen);
final MediaPlayer mp = new MediaPlayer();
mp.create(this, R.raw.welcome_message);
mp.start();
// create the on touch listener
ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.opening_layout);
layout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// change the screen to a new state
Intent intent = new Intent(OpeningScreen.this, GameScreen.class);
// start the new activity
startActivity(intent);
// stop welcome sound (if still playing)
mp.stop();
return true;
}
});
}
}
public static MediaPlayer create(Context context, int resid)
是为给定资源ID创建MediaPlayer的静态方法。 这意味着通过调用create,您正在创建一个没有参考用法的媒体播放器的新实例。
尝试改变
final MediaPlayer mp = new MediaPlayer();
mp.create(this, R.raw.welcome_message);
到
final MediaPlayer mp = MediaPlayer.create(this, R.raw. welcome_message);
而且选手应该工作。
最好通过MediaPlayer.setOnPreaparedListener
注册OnPreapredListener
,准备好后开始播放媒体。
http://developer.android.com/guide/topics/media/mediaplayer.html
你为什么用最后? 可以播放MP3与
MediaPlayer mp = MediaPlayer.create(OpeningScreen.this, R.raw.welcome_message);
mp.start();
也停止媒体播放器是更好,如果你的onDestroy停止。
public void onDestroy() {
mp.stop();
super.onDestroy();
}
最后的结果被使用,所以我可以'从内部类访问mp'。虽然如果我做了这个函数,它必须在无论如何声明'mp'的地方,所以它肯定需要是最终的。 –
这就是我的第一次。但通过这行代码后,mp仍然是空的。 –
我只是做了一遍,这次它工作。也许我搞砸了文件名或某种类型。谢谢! –