Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> directdraw, слияние звуковых потоков 
:(
    Опции темы
Antony41
Дата 21.2.2012, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



Проблема у меня следующая решил значит я написать видеопроигрыватель на основе directDraw всё как бы хорошо но вот у меня проблема. когда я воспроизвожу какой нибудь фильм у меня идет смешивание двух звуковых потоков если их больше естесственно трех и тд. и получается каша какая то. в другом проигрывателе в настройках звука выбирается какую дорожку использовать. как мне определить сколько дорожек и выбрать нужную. информации так мало уже весь инет облазил. знаю нужно как то звуковые фильтра обрабатывать но как? помогите плиз...
PM MAIL   Вверх
Antony41
Дата 23.2.2012, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



Жаль что ни кто не ответил пришлось разбираться самому 
Код

Function TForm1.GetAudioTracks:Integer;
var
  pEnum : IEnumFilters;
  pFilter :IBaseFilter;
  cFetched : dword;
  CL:TGUID;
begin
  result:=0;
  pGraphBuilder.EnumFilters(pEnum);
  while pEnum.Next(1, pFilter, @cFetched) = S_OK do
    begin
      pFilter.GetClassID(CL);
      if IsEqualGUID(CL,CLSID_DSoundRender) then
        inc(Result);
      pFilter:=nil;
    end;
  pFilter:=nil;
  pEnum:=nil;
end;


Теперь создалась еще одна ситуация. Можно конечно удалить ненужные звуковые фильтра с помощью следующей функции
Код

pGraphBuilder.RemoveFilter(pFilter);

но если фильм уже проигрывается и пользователь решил изменить звуковой поток на другой, а фильтра то уже нету так как он удалён. Можно конечно не удалять а ставить на паузу
Код

pFilter.Pause;

но при перемотке главного потока звуковой фильтр начинает снова воспроизводится и его каждый раз приходится ставить на паузу. а если звуковых потоков 3, 4 или более придётся ставить все потоки на паузу кроме основного при каждой перемотке. Хотелось бы узнать как лучше поступить в такой ситуации.
ps от этого com  интерфейса крыша едит уже и почему всё так сложно!))) Всех с Праздником!!!

Это сообщение отредактировал(а) Antony41 - 23.2.2012, 22:57
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.1014 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.