Android:媒体播放器发布和无效问题



我有一个声音咬合,可以单击一个按钮(2秒)。完成后,我打电话给新活动并发布了媒体播放器。

但是我的应用程序崩溃了。

我的代码

final ImageButton TtriangleButton=(ImageButton)findViewById(R.id.triangleTriangle);
    TtriangleButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
            /* Code for playing the "Very Good" sound */    
            final MediaPlayer mediaPlayer = MediaPlayer.create(shapeTriangleActivity.this, R.raw.applause);
            mediaPlayer.start();
            mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    Intent myintent1 = new Intent(shapeTriangleActivity.this,LearningTimeMenu.class);
                    myintent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(myintent1);
                    mediaPlayer.release();
                }});
        }});

我又有一个问题是,在版本中,我尝试添加一个null以及MediaPlayer = null; - 但是我遇到了一个汇编错误,例如"无法分配最终的本地变量媒体播放器,因为它是在封闭类型中定义的"。

am被困在这个上。需要帮助。

使用错误日志更新

10-31 14:54:45.800:e/androidruntime(859):android.content.res.res.resources $ notfoundException:资源ID#0x7f040006

我的文件也是.wav文件。我注意到.mp3文件没有此问题,即使它们俩都是相同的文件大小。

在开始这样的新活动之前,请发布媒体播放器::

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                mediaPlayer.release();
                Intent myintent1 = new Intent(shapeTriangleActivity.this,LearningTimeMenu.class);
                myintent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(myintent1);

            }});

以这种方式尝试......

- 您应该 release,然后在播放的完成后分配null

- 然后再次initialize 媒体播放器当您想播放其他声音时。

 mPlayer.start();
 mPlayer.setOnCompletionListener(new OnCompletionListener() {
 @Override
public void onCompletion(MediaPlayer mp) {
             mPlayer.release();  // 
             mPlayer = null;
        }
});

- 如果您只播放2秒的声音剪辑,请使用SoundPool来执行此操作,因为SoundPool apt for thisa sounds-clips ....

这很少有 SoundPool 的限制:

- 声音文件应不超过 1 mb。

- 使用.wav声音文件获得最佳结果,.mp3, .mp4, .m4a

甚至可以

- 请与128KB/sec的bitrate和22050KHz sampling rate一起使用,以完成播放声clip

第一个 stop 媒体播放器,然后release IT。

最新更新