以下代码崩溃,但如果我评论实例化媒体播放器的所有行,则不会崩溃。所有声音文件都在/ res / raw中。他们都自动完成。它们都可以在Windows Media Player中正常播放。
我已经在我的代码中添加了多余的东西,而且我似乎已将其跟踪到任何未注释掉的MediaPlayer.create行。
我还尝试过不同的事情,例如公开或私有实例。访问当前上下文的不同方式。等
我必须遗漏一些对其他人来说显而易见的事情。
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);
}
答案 0 :(得分:1)
在MediaPlayer
方法中实例化onCreate()
对象,而不是使用字段初始值设定项。
它需要一个有效的上下文,活动在那时没有。