游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2255|回复: 5

收藏 DirectX 声音模块开发

[复制链接]

5

主题

15

帖子

148

积分

注册会员

Rank: 2

积分
148
发表于 2013-1-24 23:29:48 | 显示全部楼层 |阅读模式
       最近由于需要,要在DX下开发声音模块。
  看到一本不错的书《游戏音频程序设计》,但是该书是使用DX8实现的,很多的接口和结构定义在DX9.0中都发生了改变。 尤其是dmusici,dmusicc这两个头文件,在DX9.0中已经没有了。
  现在希望使用DX9.0重新开发一下游戏引擎的声音模块,想请教DX8.0和DX9.0在支持声音播放的实现都有什么区别?
  或是是否有介绍DX9.0下声音模块开发的详细资料。
  本人新手,求高手指点。

5

主题

92

帖子

685

积分

高级会员

Rank: 4

积分
685
发表于 2013-1-25 16:14:24 | 显示全部楼层
楼主,你可以试试dshow.h做声音部分...
dshow...头文件代码
#ifndef __AUDIO_H__
#define __AUDIO_H__
#include "stdafx.h"
#include <DShow.h>
#pragma comment (lib,"dxguid.lib")
#pragma comment (lib,"strmiids.lib")
class CAudio
{
private:
IGraphBuilder* m_pGraph;    //视频流播放图像过滤器
IMediaControl* m_pMediaControl;  // 视频流播放控制器
IMediaPosition* m_pMediaPosition;  // 视频流播放位置
IVideoWindow* m_pVM;     //视频流播放窗口
IMediaEventEx* m_pMediaEvent;   //流媒体触发的事件
bool m_bAVI;
REFTIME m_dwPauseTime;
REFTIME m_dwTotalTime;
HWND m_hwnd;
public:
//false - mp3    true - avi
CAudio(HWND hwnd,bool _isAVI);
~CAudio(void);
void fullScreen(bool);
void run( );
void pause();
void initMedia(char *pFileName);
bool isPlayFinish();
bool playPause();
void repeat();//重复播放
void SetDisPlayWindow();//全屏播放
bool isPlaying();
void Shutdown();
};
#endif

5

主题

15

帖子

148

积分

注册会员

Rank: 2

积分
148
 楼主| 发表于 2013-1-25 21:32:28 | 显示全部楼层
我需要使用dsound模块来支持多种声音同时播放,最基本的功能需要能播放wav和ogg格式的音效。
不知道和你说的dshow.h有什么区别,是否也支持。
我是初次接触dx,这几天研究下来。能够基本做到将ogg的文件解码,然后直接赋值secondaryBuffer。然后实现播放ogg的音效,不知道各位都是怎么做到的。。
但是对其中的一些基本概念和参数还是不太清楚,求高手指点。

5

主题

15

帖子

148

积分

注册会员

Rank: 2

积分
148
 楼主| 发表于 2013-1-31 22:12:39 | 显示全部楼层
没人支持啊。

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
发表于 2013-1-31 22:48:34 | 显示全部楼层
本帖最后由 微无渊 于 2013-1-31 22:49 编辑

我也是用dsound,这个似乎和dx9没有关系,很多组件的版本都是不相一致的,
比如,dx9的dinput最新版不是9的版本,而是8的版本。

我这有写好的dsound模块,正好是你所说的,支持wav和ogg,不过有11个文件(代码不多,仅2200行),不方便上传.
你要的话,我发给你。

5

主题

15

帖子

148

积分

注册会员

Rank: 2

积分
148
 楼主| 发表于 2013-2-1 11:06:40 | 显示全部楼层
微无渊 发表于 2013-1-31 22:48
我也是用dsound,这个似乎和dx9没有关系,很多组件的版本都是不相一致的,
比如,dx9的dinput最新版不是9的版 ...

真是太感谢了,现在正急需。我邮箱fubei1989@163.com
我现在已实现播放功能,但是还不完整,一些控制还没有做好。
方便加Q吗?QQ:297359397。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-27 02:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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