文档说:sessionId-必须将AudioTrack附加到音频 session 的ID

我可以用这样的东西吗:

MediaPlayer mp = MediaPlayer.create(this, R.raw.test);
            mp.start();

int minSize = AudioTrack.getMinBufferSize(
        44100, AudioFormat.CHANNEL_OUT_STEREO,
        AudioFormat.ENCODING_PCM_16BIT );

    at = new AudioTrack(AudioManager.STREAM_MUSIC,
                        44100, AudioFormat.CHANNEL_OUT_STEREO,
                        AudioFormat.ENCODING_PCM_16BIT, minSize,
                        AudioTrack.MODE_STREAM, mp.getAudioSessionId());

    at.setStereoVolume(0.0f, 1.0f);

将音频轨道连接到媒体播放器所用流的正确方法是什么。我可以使用AudioTrack对此流进行更改吗?

任何想法都会有所帮助。谢谢。

最佳答案

您不需要指定 session ID,因为还有一个AudioTrack constructor没有sessionId输入参数。但是,如文档所述,如果要“将音频效果与AudioTrack的特定实例关联” ,则应使用带有 session ID的构造函数。
该 session ID可以从您创建的MediaPlayer实例中获取,也可以为零,在这种情况下,“如果没有提供此轨道,将为该轨道创建一个新 session ”。

09-30 13:42
查看更多