Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android播放音频文件(.wav)_Android - Fatal编程技术网

Android播放音频文件(.wav)

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

需要播放一些.wav文件,但只播放其中的一部分(从一开始)。 例如,我有test.wav文件,它是10秒,我只想播放0-5秒。 我尝试使用seekTo方法,但这无助于我的应用程序崩溃

    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不是从一开始就从设定的位置开始播放唱片。。。