来自原始文件夹的音频文件问题

时间:2011-09-08 10:12:04

标签: android media-player

我想播放我/ src / res / raw文件夹中的音频文件,如下所示:

 public class SayItActivity extends Activity {
 private ImageButton SayLetterImgBtn;
 private MediaPlayer mp;     
 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);



    SayLetterImgBtn=(ImageButton) findViewById(R.id.sayletter);
    SayLetterImgBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View view) {

            mp = MediaPlayer.create(SayItActivity.this, R.raw.a);   
            mp.start();
            mp.setOnCompletionListener(new OnCompletionListener() {

                @Override
                public void onCompletion(MediaPlayer mp) {
                    // TODO Auto-generated method stub
                    mp.release();
                }

            });
        }

    });

}
}

logcat的

09-08 15:13:16.692: ERROR/AndroidRuntime(477): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.mds.sayit/com.android.mds.sayit.SayItActivity}: java.lang.NullPointerException
09-08 15:13:16.692: ERROR/AndroidRuntime(477):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
09-08 15:13:16.692: ERROR/AndroidRuntime(477):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-08 15:13:16.692: ERROR/AndroidRuntime(477):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-08 15:13:16.692: ERROR/AndroidRuntime(477):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-08 15:13:16.692: ERROR/AndroidRuntime(477):     at android.os.Looper.loop(Looper.java:123)
09-08 15:13:16.692: ERROR/AndroidRuntime(477):     at android.app.ActivityThread.main(ActivityThread.java:4627)
09-08 15:13:16.692: ERROR/AndroidRuntime(477):     at java.lang.reflect.Method.invokeNative(Native Method)
09-08 15:13:16.692: ERROR/AndroidRuntime(477): Caused by: java.lang.NullPointerException
09-08 15:13:16.713: WARN/ActivityManager(59):   Force finishing activity  com.android.mds.sayit/.SayItActivity

我该如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:1)

替换为::

private MediaPlayer mp;  

MediaPlayer mp_xmPlayer2 = new MediaPlayer(),

更新::

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

答案 1 :(得分:0)

您尚未在媒体播放器上调用prepare方法。

基本上,要使用媒体播放器,您需要调用prepare()。媒体播放器然后准备媒体管道并在完成准备时通知应用程序。只有这样你才能在媒体播放器上调用start()。

让我知道这是否有效。

词shash