实际上,我正在尝试制作一个自定义音乐播放器应用程序,我只是想为用户提供一个将音频输出更改为立体声和单声道的机会。

最佳答案

您可以在创建AudioTrack实例时进行设置。

    /* Create AudioTrack instance */
    AudioTrack mAudioTrack = null;

    int minSize = AudioTrack.getMinBufferSize(
            16000,
            AudioFormat.CHANNEL_OUT_MONO, // or set AudioFormat.CHANNEL_OUT_STEREO
            AudioFormat.ENCODING_PCM_16BIT);

    if (mAudioTrack == null) {
        mAudioTrack = new AudioTrack(
                AudioManager.STREAM_MUSIC,
                16000,
                AudioFormat.CHANNEL_OUT_MONO, // or set AudioFormat.CHANNEL_OUT_STEREO
                AudioFormat.ENCODING_PCM_16BIT,
                minSize,
                AudioTrack.MODE_STREAM);
    }
    /* Create AudioTrack instance */

    /* Stop and release AudioTrack instance */
    mAudioTrack.flush();
    mAudioTrack.stop();
    mAudioTrack.release();
    mAudioTrack = null;
    /* Stop and release AudioTrack instance */

如果要在运行时创建AudioTrack的新实例,则将首先释放先前的实例。

08-18 12:13