编号:QA001739 建立日期: 1999年9月21日 最后修改日期:1999年9月21日 所属类别:
luguoging: VB 6.0 Windows 如何在VB6.0中播放资源文件中的声音?
回答:
假设资源文件是这样的: CHIMES WAVE DISCARDABLE "Chimes.wav" DING WAVE DISCARDABLE "Ding.wav" 1、建立一个新工程; 2、添加下面代码到Form1 '************************************************** ' Form1.frm - 调用 PlayWaveRes播放声音资源文件 '************************************************** Sub Command1_Click() PlayWaveRes "Chimes" PlayWaveRes "Ding" End Sub 3、添加你的资源文件到工程。 4、建立一个新模块,输入以下代码: '************************************************** ' Baswave.bas - 使用LoadResData播放声音文件 ' 从http://askpro.yeah.net下载 '************************************************** Option Explicit Private Declare Function sndPlaySound Lib "winmm" Alias _ "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) _ As Long '************************************************** ' wFlags 参数 '************************************************** Public Const SND_SYNC = &H0 ' Play synchronously (default). 'Public Const SND_ASYNC = &H1 ' Play asynchronously (see ' note below). Public Const SND_NODEFAULT = &H2 ' Do not use default sound. Public Const SND_MEMORY = &H4 ' lpszSoundName points to a ' memory file. Public Const SND_LOOP = &H8 ' Loop the sound until next ' sndPlaySound. Public Const SND_NOSTOP = &H10 ' Do not stop any currently ' playing sound. '************************************************** ' 播放资源文件中的声音 '************************************************** Public Sub PlayWaveRes(vntResourceID As Variant, Optional vntFlags) '---------------------------------------------------------- ' 注意: 如果使用SND_ASYNC,你必须将下面的 ' bytSound()数组放在模块级变量定义的地方 ' 或定义为静态变量,否则可能导致GPF '------------------------------------------------- Dim bytSound() As Byte ' Always store binary data in byte arrays! bytSound = LoadResData(vntResourceID, "WAVE") If IsMissing(vntFlags) Then vntFlags = SND_NODEFAULT Or SND_SYNC Or SND_MEMORY End If If (vntFlags And SND_MEMORY) = 0 Then vntFlags = vntFlags Or SND_MEMORY End If sndPlaySound bytSound(0), vntFlags End Sub 另外,参考QA000457 "SndPlaySound播放WAV文件时候不能进行其他对窗口的操作"、QA000082 "如何显示资源文件中GIF 文件"。
此问题由李海回答。 把这个问题推荐给朋友 您的意见类别 更好的答案 希望得到进一步解释 我有有关代码可以提供给网友 链接错误 文字错误 其他 您的名字 您的电子邮件 您的建议(请尽可能详细)