下面的代码崩溃了,但如果我注释了所有实例化媒体播放器的行,就不会崩溃。所有的声音文件都是/res/raw格式。它们都是自动补全的。它们在Windows Media Player中都能正常播放
我在我的代码中到处都放了祝酒词,我似乎已经把它追踪到任何一个MediaPlayer上了。创建不被注释掉的行
我也尝试过不同的事情,比如声明实例public或private。访问当前上下文的不同方式。等。
我一定错过了一些对别人来说很明显的东西。
public class MainActivity extends ActionBarActivity
{
RadioButton radio_button_1, radio_button_2, radio_button_3;
Button play_button_1, play_button_2, play_button_3;
RadioButton[] radio_button_list;
Button[] play_button_list;
// public MediaPlayer bell_player = MediaPlayer.create(getApplicationContext(),R.raw.bell);
MediaPlayer chainsaw_player = MediaPlayer.create(MainActivity.this,R.raw.chainsaw);
// MediaPlayer harp_player = MediaPlayer.create(this, R.raw.dream_harp);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(getApplicationContext(), "in main activity", Toast.LENGTH_SHORT).show();
setContentView(R.layout.activity_main);
}
在onCreate()
方法中实例化MediaPlayer
对象,而不是使用字段初始化器。
它需要一个有效的上下文,而活动在那一点上没有。