0

文档说: sessionId - AudioTrack 必须附加到的音频会话的 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 对此流进行更改吗?

4

1 回答 1

0

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

于 2012-12-27T15:29:40.623 回答