文档说: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 ”。