游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3804|回复: 6

如何将声音作为资源加进去?怎么播放?

[复制链接]

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2004-5-14 18:13:00 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

2

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2004-5-14 18:42:00 | 显示全部楼层

Re: 如何将声音作为资源加进去?怎么播放?

相信没有人愿意答你的问题,我也发过和你一样的问题但是没人肯答,个个都自认为自己是高手。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
 楼主| 发表于 2004-5-14 19:22:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
nowpaper 该用户已被删除
发表于 2004-5-15 10:27:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
nowpaper 该用户已被删除
发表于 2004-5-15 10:30:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-5-15 12:04:00 | 显示全部楼层

Re:如何将声音作为资源加进去?怎么播放?

如果是mid或者wav等等,可以使用directmusic进行播放。至于资源调用,基本方式如下:
一:建立资源,可以使用自定义资源类型,比如midi,我喜欢使用"MIDI"作为资源类型
二:将midi文件作为资源的外部连接加入,得到一些资源,假设其ID是IDR_MIDIxxx
三:使用directmusic调用资源,这点在DX SDK中有详细说明,楼主怎么不看?该函数如下:
HRESULT LoadMidi(HMODULE hMod, WORD ResourceID,
                 IDirectMusicLoader8* pLoader, IDirectMusicSegment8** ppSeg)
{
  HRESULT      hr;
  DMUS_OBJECTDESC  objDesc;

  HRSRC hFound = FindResource(hMod, MAKEINTRESOURCE(ResourceID), RT_RCDATA);
  HGLOBAL hRes = LoadResource(hMod, hFound);
  if (NULL == hRes) return E_FAIL;

  objDesc.dwSize = sizeof(DMUS_OBJECTDESC);
  objDesc.guidClass = CLSID_DirectMusicSegment;
  objDesc.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_MEMORY;
  objDesc.pbMemData = (BYTE *) LockResource(hRes);
  objDesc.llMemLength = SizeofResource(hMod, hFound);

  if (pLoader && ppSeg)
  {
    hr = pLoader->GetObject(
        &objDesc, IID_IDirectMusicSegment8,
        (void**) ppSeg);
    return hr;
  }
  else return E_INVALIDARG;  
}
注意,这里需要修改一处,就是HRSRC hFound = FindResource(hMod, MAKEINTRESOURCE(ResourceID), RT_RCDATA);,需要将最后的RT_RCDATA改为"MIDI"(因为使用的是自定义的"MIDI"资源)
其他的诸如如何播放音乐和音乐控制之类DXSDK中也写的很明白,楼主自己去看吧。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
 楼主| 发表于 2004-5-15 14:47:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-30 22:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表