Во-первых, мне нужно генерировать 2 синусоидальных сигнала на лету, которые имеют одинаковую частоту, но противоположны фазам и воспроизводят их отдельно в правый и левый каналы в стерео режиме на Android. Воспроизведение должно быть полностью синхронизировано, так что синусы левого и правого каналов «зеркалируются» (когда левый канал имеет, скажем, значение образца 120, правый канал должен иметь -120).Как играть в левый и правый каналы отдельно с помощью AudioTrack?
Дело в том, что я не нашел никаких доказательств того, как эта настройка будет работать. Есть ли возможность подавать 2 отдельных тона/буфера для воспроизведения до AudioTrack
для воспроизведения в левом и правом каналах отдельно и одновременно? Если нет, любые другие решения для достижения конечного результата заслуживают высокой оценки.
Я предполагаю, что одним из вариантов было бы использование предварительно созданных файлов стереоволн и поток с AudioTrack
, но это кажется слишком негибким для решения в работе. В то же время, если AudioTrack
может воспроизводить эти предварительно записанные аудиофайлы в «реальном» стерео режиме, я ожидал бы того же, что и с генерируемыми звуками.
Благодаря niko20 в группе разработчиков Android: «Вам не нужен отдельный буфер для правого и левого. Стерео аудио - это чередующиеся. Для вывода стереофайла вы просто заполняете буфер слева-направо - влево-вправо».Это действительно хорошо работает, протестировано с помощью AudioTrack – rar