Audio Fade out в Filter Graph (DirectShow)
От: cencio Украина http://ua-coder.blogspot.com
Дата: 26.10.04 16:48
Оценка:
Есть Filter Graph построеный RenderFile(...), он проигрывает видео клип, нужно сделать плавное затухание звуку(время fade out задается) когда клип заканчивается. Как это сделать непонятно евентов по которым можно узнать что клип заканчивается нету
Re: Audio Fade out в Filter Graph (DirectShow)
От: romson  
Дата: 26.10.04 20:23
Оценка:
Здравствуйте, cencio, Вы писали:

C>Есть Filter Graph построеный RenderFile(...), он проигрывает видео клип, нужно сделать плавное затухание звуку(время fade out задается) когда клип заканчивается. Как это сделать непонятно евентов по которым можно узнать что клип заканчивается нету


А что тут непонятного? С помощью IMediaSeeking определяем продолжительность клипа и в цикле смотрим текущую позицию. Как только она достигнет значения (duration — fade_out), начинаем убавлять громкость с помощью IBasicAudio::put_Volume. Вот вроде и всё
Re[2]: Audio Fade out в Filter Graph (DirectShow)
От: cencio Украина http://ua-coder.blogspot.com
Дата: 27.10.04 07:33
Оценка:
Здравствуйте, romson, Вы писали:

R>Здравствуйте, cencio, Вы писали:


C>>Есть Filter Graph построеный RenderFile(...), он проигрывает видео клип, нужно сделать плавное затухание звуку(время fade out задается) когда клип заканчивается. Как это сделать непонятно евентов по которым можно узнать что клип заканчивается нету


R>А что тут непонятного? С помощью IMediaSeeking определяем продолжительность клипа и в цикле смотрим текущую позицию. Как только она достигнет значения (duration — fade_out), начинаем убавлять громкость с помощью IBasicAudio::put_Volume. Вот вроде и всё


Это было первое что пришло в голову, но слишком уж криво выглядит такой способ Во первых если цикл будет работать в отдельном потоке, то таскменеджер покажет 100% загрузку процесора, исправляется это просто но тогда может оказатся что fade out должен продолжатся 500 мс а когда поток получит управление следующий раз то до окончания клипа останется например 250 мс. Может есть другии способы реализовать фейд?
Re[3]: Audio Fade out в Filter Graph (DirectShow)
От: PSP Беларусь  
Дата: 05.11.04 08:14
Оценка:
Здравствуйте, cencio, Вы писали:

C>Это было первое что пришло в голову, но слишком уж криво выглядит такой способ Во первых если цикл будет работать в отдельном потоке, то таскменеджер покажет 100% загрузку процесора, исправляется это просто но тогда может оказатся что fade out должен продолжатся 500 мс а когда поток получит управление следующий раз то до окончания клипа останется например 250 мс. Может есть другии способы реализовать фейд?


Можно реализовать DirectShow filtr который искусственно запихивать в граф обработки и в нём обрабатывать звуковые данные. там же можно получиьт временную позицию.
Всегда Ваш, PSP.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.