СообЧа > База Знаний > Программирование > Visual Basic > Графика и Мультимедиа

Вопрос

Как можно организовать проигрывание 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 Сообщество Чайников
Контактная информация