【问题标题】:How to switch audio output modes between stereo and mono in android programmatically?如何以编程方式在android中的立体声和单声道之间切换音频输出模式?
【发布时间】:2016-01-20 07:10:46
【问题描述】:

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

【问题讨论】:

    标签: android audio audiotrack


    【解决方案1】:

    您可以在创建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的新实例,之前的实例将首先被释放。

    【讨论】:

    • 感谢您的回复@Kae10...但我已经尝试过不同的频率。即,22050,48000 也是。但它不起作用。
    • 您能查看有关AudioTrack 或您的问题的日志吗?您的 sampleRate 不是非法的,但在某些情况下,它不是正确的值。
    • 嗯...你能更新你的模块吗?另外,我想知道你在播放音乐时有什么问题。
    • 我在播放音乐时没有问题。只是输出似乎没有改变..实际上不仅在音乐播放器中,而且它也应该在系统媒体设置中更新。我有同样的事情按照你的建议完成。@Kae10
    猜你喜欢
    • 2020-04-06
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多