Android 仅在调试模式下工作的媒体播放器

Android 仅在调试模式下工作的媒体播放器,android,Android,我正在使用MediaPlayer播放.WAV格式的音频文件。调试应用程序时,我可以播放该文件,但运行应用程序时,该文件无法播放 关于这一点,有一个解决方案,但没有提供 下面是我正在使用的代码 MediaPlayer mMediaPlayer = new MediaPlayer(); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mMediaPlayer.setDataSource(mContext, fileUri);//

我正在使用MediaPlayer播放.WAV格式的音频文件。调试应用程序时,我可以播放该文件,但运行应用程序时,该文件无法播放

关于这一点,有一个解决方案,但没有提供

下面是我正在使用的代码

MediaPlayer mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(mContext, fileUri);// uri of the audio file
mMediaPlayer.prepare();
mMediaPlayer.setOnCompletionListener(this);    
mMediaPlayer.start();// to start the playback of the audio file
此代码仅在调试模式下工作,而不是在正常模式下工作


谢谢

这就是我要说的:

btn_next.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);

        try {
            mp.reset();
            mp.setDataSource(url.toString());
            mp.setOnErrorListener(this);
            mp.setOnPreparedListener(this);
            mp.setOnCompletionListener(this);
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            Log.e(TAG, "SecurityException");
        } catch (IllegalStateException e) {
            Log.e(TAG, "IllegalStateException");
        } catch (IOException e) {
            Log.e(TAG, "IOException");
        }
        mp.prepareAsync();
    }
});
现在,
override
方法
onPrepared()


如果您在这方面遇到任何问题,请在下面进行评论。

您需要添加
mmediplayer.start()MediaPlayer
onPreparedListener()
中进行编码>。在准备之前,您正在启动
MediaPlayer
。最好使用
mMediaPlayer.prepareAsync()而不是
mmediplayer.prepare()@activesince93谢谢你的回复。我想在单击按钮时播放音频文件,因此无法使用mmediplayer.start();在onPreparedListener()中。在准备mediaplayer之前,我不会启动它。@ravi,你解决了这个问题吗?如果是,请分享正确答案,以便其他人得到帮助来解决相同的问题。这是行不通的。在运行模式下是否有其他方式播放声音?
@Override
public void onPrepared(MediaPlayer mp) {
    // TODO Auto-generated method stub
    mp.start();
}