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