На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (4) [1] 2 3 ... Последняя » все  ( Перейти к последнему сообщению )  
> Запись потока с линейного входа , Разделить поток линейного входа на 2 разных в первом только левое моно, а во втором только правое моно
    Здравствуйте...
    Есть, к примеру, телефон, я его подключаю к звуковой карте на линейный вход... мне нужно входящий стерео поток разделить на 2 моно, то есть в первом будет только то что было на левом канале, а во втором только то, что на правом канале... и записывать эти потоки в 2 разных файла. Я почитал bass.dll, посмотрел примеры, но так и не разобрался....
    Помогите пожалуйста разобраться...
    Заранее спасибо!
      Цитата sandist @
      но так и не разобрался....

      Необходимо при открытии устройства указать, что будут два канала:
      ExpandedWrap disabled
        //Создаем заголовок для открытия устройства вывода
            WaveFormat.wFormatTag := WAVE_FORMAT_PCM;
            WaveFormat.nChannels := 1; //Выбор 1 канал моно
        ......
            WaveOut := New(PHWaveOut);
        //Делаем попытку открыть устройство
        //Возможно ИС при занятом устройстве
        //придется перехватывать
            Err := WaveOutOpen(WaveOut, 0, @WaveFormat,
             Handle, 0, CALLBACK_WINDOW);
      Разумеется, сначала необходимо настроить микшер на подключение для захвата линейного входа. :D
        Цитата
        Я почитал bass.dll, посмотрел примеры, но так и не разобрался....
        Помогите пожалуйста разобраться...

        Цитата

        WaveOutOpen
        для захвата

        Медвед, что это было? :-?

        Добавлено
        Цитата
        и записывать эти потоки в 2 разных файла. Я почитал bass.dll, посмотрел примеры, но так и не разобрался....
        Помогите пожалуйста разобраться...

        Разобраться с чем конкретно? Что вызывает трудность?
        Сообщение отредактировано: Prince -
          Цитата Prince @
          Медвед, что это было? :-?

          Комментарий к коду читай. Непонятно? Тогда расшифрую: в коде показано, где формировать количество каналов. Тебе что непонятно то? :D
            Мне непонятно, как человек, не разобравшийся в примерах из справки к басс, сможет из комментариев к вырванному из другой оперы кусочку кода, совершенно неинформативному в контексте поставленных вопросов, понять, как "входящий стерео поток разделить на 2 моно, то есть в первом будет только то что было на левом канале, а во втором только то, что на правом канале... и записывать эти потоки в 2 разных файла". Вот непонятно мне. :-?
              Цитата Prince @
              Мне непонятно

              Т.е. к тому, как сделать так, чтобы был захват ДВУХ каналов у тебя вопросов в контексте моего ответа нет, так? Может подождем автора, убедимся, что он осознал, КАК сделать захват двух каналов при помощи формирования определенной структуры и пойдем далее? Например, отслеживая по флагу чет-нечет и запихивая пришедшие буферы в разные потоки. Но для начала настроить микшер. Или это тебе тоже непонятно? :D
              Цитата Prince @
              Вот непонятно мне. :-?

              Мир даже не заметил твоей тревоги.... Тебе это странно, мне....как то не очень. И это тоже странно? :D

              Добавлено
              Цитата Prince @
              не разобравшийся в примерах из справки к басс

              Кстати, Prince, я вот ни разу не разбирался с этой длл. Но тем не менее не испытываю никаких напряжений в работе со звуком. Тоже странно? :D
                Цитата
                Т.е. к тому, как сделать так, чтобы был захват ДВУХ каналов у тебя вопросов в контексте моего ответа нет, так?

                А вот и не угадал. Есть. Каким боком WaveOutOpen относится к захвату хоть скольких-нибудь каналов?
                Цитата
                Может подождем автора, убедимся, что он осознал, КАК сделать захват двух каналов при помощи формирования определенной структуры и пойдем далее?

                Да подождём, конечно.
                  Цитата Prince @
                  Каким боком WaveOutOpen относится к захвату хоть скольких-нибудь каналов?

                  Никаким. Так же как и WaveInOpen. И? :D
                    Цитата
                    Никаким. Так же как и WaveInOpen

                    Это как. Почему WaveInOpen никаким?
                      Цитата Prince @
                      Почему WaveInOpen никаким?

                      Т.е. с WaveOutOpen ты согласен? :D
                        Цитата
                        Т.е. с WaveOutOpen ты согласен?

                        С тем, что ты сморозил чепуху, с этим WaveOutOpen, конечно, согласен.
                        Сообщение отредактировано: Prince -
                          Спасибо что откликнулись!
                          Я далек от программирования звука, а так с лету понять видимо мозгов мало 😊
                          Если можно дайте мне хоть направление, куда копать, функцию или компонент...
                          Поток данных идет от телефона, на линейный вход, я понял как записывать этот поток, в файле он идет как моно... А как записывать только один канал, ну или вообще накладывать какие-либо фильтры или эффекты на сам поток, не понял
                          Например мне нужно чтобы это стереопоток разбивался, записывался в разные файлы, при этом чтобы он соазу не выводился на выход, а была возможность какой-то из разбитых ранее потоков отдельно в случае необходимости выводить на выходе...
                          Я знаю что надо, но обсалютно не имеею представления с какого конца подойти к этой проблеме...
                          Помогите пожалуйста!!!!!!!!!!
                            Цитата Prince @
                            С тем, что ты сморозил чепуху, с этим WaveOutOpen, конечно, согласен

                            Я пожалуй соглашусь с тем, что ты не разобравшись, что я хотел показать, начал гнать пургу. Это так на тебя похоже, и перед твоими "доводами" блекнет любая "чепуха". :D
                            Цитата sandist @
                            Поток данных идет от телефона, на линейный вход

                            Он идет стерео или моно? Или моно но по двум проводам? Это принципиально, т.к. из моно ты стерео не получишь. Максимум - два одинаковых канала. :D Это раз.
                            Цитата sandist @
                            А как записывать только один канал

                            1. Сначала формируешь структуру и открываешь устройство. Что за структура и как ее формировать для открытия как одного так и двух каналов, я показал. Правда "светочи" вцепились в вывод, "аргументируя" необходимостью ввода, но сознательно упуская одну деталь - структура одинакова как для ввода, так и для вывода. По крайней мере в части количества каналов.
                            2. Далее ты подготавливаешь "карусель" из буферов размером 1024 байт и фиксируешь их в очереди драйвера.
                            3. Запускаешь открытое устройство на работу и "карусель" начнет тебе выдавать данные. Твоя задача - корректно данные из буфера принять и слить в поток. Если необходимо писать разные каналы раздельно, то что мешает четные буферы сливать в один поток, а нечетные в другой?
                            Совсем подробно все это разжевано здесь. Но повторю, чтобы у тебя был захват необходимого устройства (микрофона/линейного входа) необходимо сначала настроить подсистему микширования, активировав необходимую линию. :D
                            Сообщение отредактировано: medved_68 -
                              Стерео поток на вход идет... А можно сделать так, чтобы со входа звук сразу не шел выход... А если будет нужно пустить на выход один из этих потоков?

                              Добавлено
                              Если можно дай пожалуйста более конкретный пример... Оч большая просьба

                              Добавлено
                              Да ты прав! По двум проводам моно

                              Добавлено
                              А в чем разница? Задача стоит так, идет с 2 микрофонов моно, подаются на вход и выходит стерео... А про телефон я сказал потому что дома испытываю результат на стерео музыке, считал что это равнозначно
                                Цитата sandist @
                                Если можно дай пожалуйста более конкретный пример... Оч большая просьба

                                Мыло в приват - сброшу пример работы с микрофоном и пример настройки микшера на линейный вход на Д7. Как собрать необходимое тебе из двух примеров, добавив раздельную запись потоков на винт - не вижу никаких проблем. :D

                                Добавлено
                                Цитата sandist @
                                Задача стоит так, идет с 2 микрофонов моно, подаются на вход и выходит стерео...

                                Нет проблем. :D
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.0817 ]   [ 15 queries used ]   [ Generated: 12.07.26, 19:06 GMT ]