Вопрос
Как можно организовать проигрывание MP3 файлов с использованием какого-нибудь стандартного декодера Fraunhofer IIS MPEG Layer-3 Decoder?
Ответ
Вот пример модуля, который содержит необходимую Вам функцию:
Attribute VB_Name = "mdlSound"
Option Explicit
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Public Const SND_ASYNC = &H1
Public Function Sound(c As String) As Long
Dim b As Long
b = PlaySound(c, 0, SND_ASYNC)
Sound = b
End Function
Использовать так:
Sound "h:\Music\ozr.wav"
или
Sound "h:\Music\ozr.mp3"
или
Sound "h:\Music\ozr.mpg"
Данная процедура заканчивает свою работу после начала проигрывания музыки. Т.е. музыка играет, а программа выполняется. Чтобы можно было точно узнать, когда эта музыка кончилась, необходимо использовать таймер, или вместо API-функции использовать элемент управления MMControl
Если же поступить так, как описано во многих книгах по программированию (кстати и в справке по VC++) и заменить константу SND_ASYNC, то тогда Ваша программа остановится до того момента, когда музыка кончится, что не очень хорошо, если музыка длинная.
Но учтите, что при установке такой программы на другой компьютер Вам необходимо будет также установить на этом компьютере кодек. Он находится в саморазворачивающимся архиве с именем l3codecx.exe
BSP
А можно с помощью mciSendString.
akplayer
Copyright 2000-2004 Сообщество Чайников
Контактная информация