Страница: 1 |
Страница: 1 |
Вопрос: Регулировка громкости
Добавлено: 02.09.07 13:04
Автор вопроса: Mr.Smile | ICQ: 427682013
Привет всем, кто читает эту тему!
При использовании компонента ActiveMovie control type library у меня возникли проблемы с регулировкой уровня громкости. Например, на 50% уже ничего не слышно. :( Помогите сделать регулировку по нормальному. Например, как в Winamp.
Заранее благодарен.
Вот, собственно, код (Form1 (добавить HScroll1), Module1):
Form1.frm
Private Sub Form_Activate()
'Change the file path of your mp3 in here.
DirectShow_Load_Media "C:\WINDOWS\Media\Windows XP - запуск.wav" 'Ваш звуковой файл
'You don't need to do this part, but it's nice to be
'able to control it.
'------------------------------------------------
DirectShow_Volume 100
'------------------------------------------------
DirectShow_Play
End Sub
Private Sub Form_Unload(Cancel As Integer)
DirectShow_Stop
DirectShow_Shutdown
End Sub
Private Sub HScroll1_Change()
DirectShow_Volume HScroll1.Value
End Sub
Private Sub HScroll1_Scroll()
DirectShow_Volume HScroll1.Value
End Sub
Module1.bas
Private Const MAX_VOLUME As Long = 100
Public DirectShow_Control As IMediaControl
Public DirectShow_Position As IMediaPosition
Public DirectShow_Audio As IBasicAudio
Public Function DirectShow_Load_Media(File_Name As String) As Boolean
On Error GoTo Error_Handler
If Right(File_Name, 4) = ".mp3" Or Right(File_Name, 4) = ".wav" Then
Set DirectShow_Control = New FilgraphManager
DirectShow_Control.RenderFile (File_Name)
Set DirectShow_Audio = DirectShow_Control
DirectShow_Audio.Volume = 0
DirectShow_Audio.Balance = 0
Set DirectShow_Position = DirectShow_Control
DirectShow_Position.Rate = 1
DirectShow_Position.CurrentPosition = 0
Else
GoTo Error_Handler
End If
DirectShow_Load_Media = True
Exit Function
Error_Handler:
DirectShow_Load_Media = False
End Function
Public Function DirectShow_Play() As Boolean
On Error GoTo Error_Handler
DirectShow_Control.Run
DirectShow_Play = True
Exit Function
Error_Handler:
DirectShow_Play = False
End Function
Public Function DirectShow_Stop() As Boolean
On Error GoTo Error_Handler
DirectShow_Control.Stop
DirectShow_Position.CurrentPosition = 0
DirectShow_Stop = True
Exit Function
Error_Handler:
DirectShow_Stop = False
End Function
Public Function DirectShow_Volume(ByVal Volume As Long) As Boolean
On Error GoTo Error_Handler
If Volume >= MAX_VOLUME Then Volume = MAX_VOLUME
If Volume <= 0 Then Volume = 0
DirectShow_Audio.Volume = (Volume * MAX_VOLUME) - 10000
DirectShow_Volume = True
Exit Function
Error_Handler:
DirectShow_Volume = False
End Function
Public Sub DirectShow_Shutdown()
Set DirectShow_Audio = Nothing
Set DirectShow_Control = Nothing
Set DirectShow_Position = Nothing
End Sub
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
Игорь
ICQ: 457394129
Вопросов: 52
Ответов: 133
Профиль | | #1
Добавлено: 02.09.07 18:50
Вот я выложил пример:
http://slil.ru/24806363
Номер ответа: 2
Автор ответа:
Игорь
ICQ: 457394129
Вопросов: 52
Ответов: 133
Профиль | | #2
Добавлено: 02.09.07 18:51
Просто заместо конкретных значений впишешь обращение к зачению скрола!
Номер ответа: 3
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #3
Добавлено: 02.09.07 20:02
2Игорь
Спасибо за пример. Но дело в том, что мне необходимо правильно менять громкость в ActiveMovie control type library, а не в Windows.
Номер ответа: 4
Автор ответа:
Игорь
ICQ: 457394129
Вопросов: 52
Ответов: 133
Профиль | | #4
Добавлено: 03.09.07 10:33
Поесть ты хочешь менять громкость не изменяя её в звуковой панели? Как в WinAMP!
Номер ответа: 5
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #5
Добавлено: 03.09.07 14:54
Номер ответа: 6
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #6
Добавлено: 03.09.07 15:23
P.S. ActiveMovie control type library - библиотека quartz.dll. Добавляется в Project->References...->ActiveMovie control type library (поставить галочку)
Она воспроизводит звук, и это в ней мне нужно научиться праильно изменять громкость воспроизводимого ею-же звукового файла.
Номер ответа: 7
Автор ответа:
Игорь
ICQ: 457394129
Вопросов: 52
Ответов: 133
Профиль | | #7
Добавлено: 03.09.07 16:55
Когда я выделяю ету dll ку то ВБ пишет что не может её загрузить!
Номер ответа: 8
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #8
Добавлено: 03.09.07 20:08
Это нехорошо. У меня всё работает; возможно, она у тебя пропатчена или повреждена. Ничего поделать не могу.
Номер ответа: 9
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #9
Добавлено: 09.09.07 09:08
Ммм... Еда!