android - AudioTrack。如何使用sessionId?

标签 android audio

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

关于android - AudioTrack。如何使用sessionId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14056790/

相关文章:

java - 如何在程序中添加背景音乐?

javascript - 在悬停状态播放声音

java - 如何在android中动态添加入口芯片以及图标

android - 适用于 iOS 和 Android 的音频格式

jquery - .next() .prev() 遍历多个 <article> 元素

Android 应用无法在 Samsung Galaxy Apps 上提交(如何包含 Samsung SDK?)

iOS:如何让定时器应用程序在后台播放自定义声音?

android - 传递给 dlfree 的地址无效

java - 如何使textview的一部分可编辑

android - 找不到带有ionic2 cordova的Android构建工具