Поблемы с mp3. Плохое воспроизведение

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Поблемы с mp3. Плохое воспроизведение

Сообщение SeT » 22.10.2005 (Сб) 16:40

Дома много примеров использования winmm.dll для проигрывания mp3 файлов. Но вот в чём загвоздка: некоторые файлы воспроизводятся нормально, а некоторые - хрипя, подпрыгивая, в общем не нормально. В чём дело? :cry:
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 22.10.2005 (Сб) 22:15

В кодеке, аудиоплате, материнской плате, ДНК?
Моду создают модоки, а распространяют модозвоны.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 22.10.2005 (Сб) 22:53

А через DS всё нормально?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 23.10.2005 (Вс) 15:32

DS? Не понял? Объясни ламеру, что это такое.
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 23.10.2005 (Вс) 15:33

DirectSound
Моду создают модоки, а распространяют модозвоны.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 23.10.2005 (Вс) 15:37

Я не знаю, как в DS mp3 воспроизводить. С wav разобрался, а вот с mp3... :cry:
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 23.10.2005 (Вс) 15:42

MP3 можно через DirectShow.
Вложения
CQuartz.zip
(1.87 Кб) Скачиваний: 29
Моду создают модоки, а распространяют модозвоны.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 23.10.2005 (Вс) 15:46

Скачал, но почему-то вылезает ошибка Automation error. Почему?
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 23.10.2005 (Вс) 15:48

А... Не... Разобрался. Только как тут файл воспроизвести?!!
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 23.10.2005 (Вс) 15:54

Рекомендации по модификации кода:
1) Измени значение переменной sFile на путь к твоему файлу и будет тебе счастье.
2) Можешь, кстати, удалить из кода пример работы с видео. Он туда случайно закатился :)

Вообще простейший код для работы с Quartz:
Код: Выделить всё
Dim fgm As FilgraphManager

Private Sub Form_Load()
    Set fgm = New FilgraphManager
    fgm.RenderFile "<имя твоего файла>"
    fgm.Run
End Sub

Private Sub Form_Unload()
    Set fgm = Nothing
End Sub


см. DirectShow: Visual Basic Objects
Моду создают модоки, а распространяют модозвоны.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 23.10.2005 (Вс) 18:38

Пасиба. А как в этод код вставить воспроизведение с заданной позиции? С winmm это было просто, а здесь ... :oops:
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 23.10.2005 (Вс) 18:54

IMediaPosition для установки позиции (.CurrentPosition = .CurrentPosition + nSec\.Rate), IMediaEvent для ожидания начала проигрывания файла. Доходчиво? Копай в районе ссылки, что я тебе дал.
Моду создают модоки, а распространяют модозвоны.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 23.10.2005 (Вс) 18:57

Громаднейшее спасибо сотым шрифтом!!!
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 24.10.2005 (Пн) 15:35

Та же самая фигня - музыка прямо-таки прыгает. В чём же дело? Ведь в Winamp'е всё чики-пуки (Хотя ведь это Winamp!!!) :cry:
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 24.10.2005 (Пн) 19:11

Таки проверь свои файлы "MP3". А Winamp - это всего лишь Winamp, не поверишь, но он тоже использует DS.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.10.2005 (Вт) 7:37

Нет, он использует то, что ты ему укажешь.
Я обычно использую waveOut (Wave Mapper), а не DS.
Lasciate ogni speranza, voi ch'entrate.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 25.10.2005 (Вт) 14:59

Скинь сюда какой-нибудь примерчик, который ты используешь.
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 25.10.2005 (Вт) 18:46

alibek писал(а):Нет, он использует то, что ты ему укажешь.
Я обычно использую waveOut (Wave Mapper), а не DS.


То, что я написал, этому не противоречит.
Зря. Слишком много теряешь.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 26.10.2005 (Ср) 15:20

Насчёт подлинности mp3 файлов. На самом деле mp3. Вот только даже Sound Forge их плохо читает. А Winamp, Jet Audio и прочие плееры нормально :shock:
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35

    TopList