Запись потока с линейного входа
, Разделить поток линейного входа на 2 разных в первом только левое моно, а во втором только правое моно
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.50] |
|
|
ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
| Страницы: (4) [1] 2 3 ... Последняя » все ( Перейти к последнему сообщению ) |
Запись потока с линейного входа
, Разделить поток линейного входа на 2 разных в первом только левое моно, а во втором только правое моно
|
Сообщ.
#1
,
|
|
|
|
Здравствуйте...
Есть, к примеру, телефон, я его подключаю к звуковой карте на линейный вход... мне нужно входящий стерео поток разделить на 2 моно, то есть в первом будет только то что было на левом канале, а во втором только то, что на правом канале... и записывать эти потоки в 2 разных файла. Я почитал bass.dll, посмотрел примеры, но так и не разобрался.... Помогите пожалуйста разобраться... Заранее спасибо! |
|
Сообщ.
#2
,
|
|
|
|
Цитата sandist @ но так и не разобрался.... Необходимо при открытии устройства указать, что будут два канала: ![]() ![]() //Создаем заголовок для открытия устройства вывода WaveFormat.wFormatTag := WAVE_FORMAT_PCM; WaveFormat.nChannels := 1; //Выбор 1 канал моно ...... WaveOut := New(PHWaveOut); //Делаем попытку открыть устройство //Возможно ИС при занятом устройстве //придется перехватывать Err := WaveOutOpen(WaveOut, 0, @WaveFormat, Handle, 0, CALLBACK_WINDOW); |
|
Сообщ.
#3
,
|
|
|
|
Цитата Я почитал bass.dll, посмотрел примеры, но так и не разобрался.... Помогите пожалуйста разобраться... Цитата WaveOutOpen для захвата Медвед, что это было? Добавлено Цитата и записывать эти потоки в 2 разных файла. Я почитал bass.dll, посмотрел примеры, но так и не разобрался.... Помогите пожалуйста разобраться... Разобраться с чем конкретно? Что вызывает трудность? |
|
Сообщ.
#4
,
|
|
|
|
Цитата Prince @ Медвед, что это было? Комментарий к коду читай. Непонятно? Тогда расшифрую: в коде показано, где формировать количество каналов. Тебе что непонятно то? |
|
Сообщ.
#5
,
|
|
|
|
Мне непонятно, как человек, не разобравшийся в примерах из справки к басс, сможет из комментариев к вырванному из другой оперы кусочку кода, совершенно неинформативному в контексте поставленных вопросов, понять, как "входящий стерео поток разделить на 2 моно, то есть в первом будет только то что было на левом канале, а во втором только то, что на правом канале... и записывать эти потоки в 2 разных файла". Вот непонятно мне.
|
|
Сообщ.
#6
,
|
|
|
|
Цитата Prince @ Мне непонятно Т.е. к тому, как сделать так, чтобы был захват ДВУХ каналов у тебя вопросов в контексте моего ответа нет, так? Может подождем автора, убедимся, что он осознал, КАК сделать захват двух каналов при помощи формирования определенной структуры и пойдем далее? Например, отслеживая по флагу чет-нечет и запихивая пришедшие буферы в разные потоки. Но для начала настроить микшер. Или это тебе тоже непонятно? Цитата Prince @ Вот непонятно мне. ![]() Мир даже не заметил твоей тревоги.... Тебе это странно, мне....как то не очень. И это тоже странно? Добавлено Цитата Prince @ не разобравшийся в примерах из справки к басс Кстати, Prince, я вот ни разу не разбирался с этой длл. Но тем не менее не испытываю никаких напряжений в работе со звуком. Тоже странно? |
|
Сообщ.
#7
,
|
|
|
|
Цитата Т.е. к тому, как сделать так, чтобы был захват ДВУХ каналов у тебя вопросов в контексте моего ответа нет, так? А вот и не угадал. Есть. Каким боком WaveOutOpen относится к захвату хоть скольких-нибудь каналов? Цитата Может подождем автора, убедимся, что он осознал, КАК сделать захват двух каналов при помощи формирования определенной структуры и пойдем далее? Да подождём, конечно. |
|
Сообщ.
#8
,
|
|
|
|
Цитата Prince @ Каким боком WaveOutOpen относится к захвату хоть скольких-нибудь каналов? Никаким. Так же как и WaveInOpen. И? |
|
Сообщ.
#9
,
|
|
|
|
Цитата Никаким. Так же как и WaveInOpen Это как. Почему WaveInOpen никаким? |
|
Сообщ.
#10
,
|
|
|
|
Цитата Prince @ Почему WaveInOpen никаким? Т.е. с WaveOutOpen ты согласен? |
|
Сообщ.
#11
,
|
|
|
|
Цитата Т.е. с WaveOutOpen ты согласен? С тем, что ты сморозил чепуху, с этим WaveOutOpen, конечно, согласен. |
|
Сообщ.
#12
,
|
|
|
|
Спасибо что откликнулись!
Я далек от программирования звука, а так с лету понять видимо мозгов мало 😊 Если можно дайте мне хоть направление, куда копать, функцию или компонент... Поток данных идет от телефона, на линейный вход, я понял как записывать этот поток, в файле он идет как моно... А как записывать только один канал, ну или вообще накладывать какие-либо фильтры или эффекты на сам поток, не понял Например мне нужно чтобы это стереопоток разбивался, записывался в разные файлы, при этом чтобы он соазу не выводился на выход, а была возможность какой-то из разбитых ранее потоков отдельно в случае необходимости выводить на выходе... Я знаю что надо, но обсалютно не имеею представления с какого конца подойти к этой проблеме... Помогите пожалуйста!!!!!!!!!! |
|
Сообщ.
#13
,
|
|
|
|
Цитата Prince @ С тем, что ты сморозил чепуху, с этим WaveOutOpen, конечно, согласен Я пожалуй соглашусь с тем, что ты не разобравшись, что я хотел показать, начал гнать пургу. Это так на тебя похоже, и перед твоими "доводами" блекнет любая "чепуха". Цитата sandist @ Поток данных идет от телефона, на линейный вход Он идет стерео или моно? Или моно но по двум проводам? Это принципиально, т.к. из моно ты стерео не получишь. Максимум - два одинаковых канала. Это раз. Цитата sandist @ А как записывать только один канал 1. Сначала формируешь структуру и открываешь устройство. Что за структура и как ее формировать для открытия как одного так и двух каналов, я показал. Правда "светочи" вцепились в вывод, "аргументируя" необходимостью ввода, но сознательно упуская одну деталь - структура одинакова как для ввода, так и для вывода. По крайней мере в части количества каналов. 2. Далее ты подготавливаешь "карусель" из буферов размером 1024 байт и фиксируешь их в очереди драйвера. 3. Запускаешь открытое устройство на работу и "карусель" начнет тебе выдавать данные. Твоя задача - корректно данные из буфера принять и слить в поток. Если необходимо писать разные каналы раздельно, то что мешает четные буферы сливать в один поток, а нечетные в другой? Совсем подробно все это разжевано здесь. Но повторю, чтобы у тебя был захват необходимого устройства (микрофона/линейного входа) необходимо сначала настроить подсистему микширования, активировав необходимую линию. |
|
Сообщ.
#14
,
|
|
|
|
Стерео поток на вход идет... А можно сделать так, чтобы со входа звук сразу не шел выход... А если будет нужно пустить на выход один из этих потоков?
Добавлено Если можно дай пожалуйста более конкретный пример... Оч большая просьба Добавлено Да ты прав! По двум проводам моно Добавлено А в чем разница? Задача стоит так, идет с 2 микрофонов моно, подаются на вход и выходит стерео... А про телефон я сказал потому что дома испытываю результат на стерео музыке, считал что это равнозначно |
|
Сообщ.
#15
,
|
|
|
|
Цитата sandist @ Если можно дай пожалуйста более конкретный пример... Оч большая просьба Мыло в приват - сброшу пример работы с микрофоном и пример настройки микшера на линейный вход на Д7. Как собрать необходимое тебе из двух примеров, добавив раздельную запись потоков на винт - не вижу никаких проблем. Добавлено Цитата sandist @ Задача стоит так, идет с 2 микрофонов моно, подаются на вход и выходит стерео... Нет проблем. |