Android播放音频文件(.wav)
需要播放一些.wav文件,但只播放其中的一部分(从一开始)。 例如,我有test.wav文件,它是10秒,我只想播放0-5秒。 我尝试使用seekTo方法,但这无助于我的应用程序崩溃Android播放音频文件(.wav),android,Android,需要播放一些.wav文件,但只播放其中的一部分(从一开始)。 例如,我有test.wav文件,它是10秒,我只想播放0-5秒。 我尝试使用seekTo方法,但这无助于我的应用程序崩溃 AssetFileDescriptor afd = context.getResources().openRawResourceFd(R.raw.test); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_SYSTEM); mMedi
AssetFileDescriptor afd = context.getResources().openRawResourceFd(R.raw.test);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_SYSTEM);
mMediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mMediaPlayer.setOnPreparedListener(mOnPreparedListener);
mMediaPlayer.setOnCompletionListener(mMediaPlayerCompletionListener);
mMediaPlayer.seekTo(5000);
mMediaPlayer.prepare();
您不能在调用prepare之前进行搜索,我不确定您是否可以在实际调用
MediaPlayer.play()
之前进行搜索。老实说,您需要检查这一点,但请确保prepare首先进行。您可以在设定的时间后停止播放(在您的情况下为5秒)。有很多方法可以做到这一点,其中之一可能是:
final Handler handler = new Handler();
//create a runnable that will be called to stop playback
final Runnable runnable = new Runnable() {
@Override
public void run() {
//stop playback, make sure mMediaPlayer is declared as a field
//in the class where it's used
mMediaPlayer.stop();
}
};
//post a job for handler do be done in 5 seconds
handler.postDelayed(runnable, 5 * 1000);
意味着你只想在你的应用程序中播放.wav音频。对。这是真的。我需要在准备好后给seekto打电话,但不幸的是seekto不是从一开始就从设定的位置开始播放唱片。。。