Здравствуйте, KonstBez, Вы писали:
NM>>Вобщем Ай нид хелп в этом деле. NM>>Объясните на пальцах как можно грамотно переключать звуковые потоки или УРЛ какой-нить толковый дайте. NM>>ЗЫ: Предполагается использовать только один из нескольких звуковых потоков.
KB>Надо в отключаемые ветви графа вставить собственный фильтр, построенный на CTransformFilter. Тогда можно не пускать данные на выход, не останавливая ветвь. Статус ветви running, а на выходе тишина. KB>Можно также построить фильтр на CTransInPlaceFilter (в DirectX Media SDK это пример Gargle) и домножать все данные на 0. Эффект аналогичный.
э-э-э я просто пишу на DELPHI и видимо с этим решением будет сложновато.
Я так понимаю в звуковом рендерере присутствует таймер синхронизации, по которому со звуком синхнонно работатет видео. При загрузке АВИ с одним звуковым потоком по умолчанию юзается этот единственный таймер, но вот при загрузке с 3-мя потоками какой из них юзается непонятно — наблюдал в graphedit из SDK.
Даже если там я просто удалю 2 цепочки, то видео уже не будет синхронизированно и мотаться по таймлайну не будет — только непрерывное воспроизведение вперед.
Можно как нибуть переинитить граф и рендерер на новый таймер? Или привязать граф к звуковому рендереру принудительно? Вобщем-то я пробовал вытаскивать таймер из рендерера и пихать в граф, но это не прокатывало.