关于音频播放接口阻塞的问题

shn521 2013-01-31 09:36:29
waveOutPrepareHeader
waveOutWrite
waveOutUnprepareHeader
用的这3个API接口,正常情况下是可以播放的,但播放的工程中如果对计算机的音频设置进行更改,可能会造成这3个函数中的一个阻塞,请问有什么办法让其继续往下执行或返回错误,而不是堵在那里,感谢啊!
...全文
389 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shn521 2013-02-18
  • 打赏
  • 举报
回复
引用 8 楼 RobertBaker 的回复:
我发现里面少了些代码,看这里 http://blog.csdn.net/robertbaker/article/details/8559609 接口不用我说了吧, struct WAVE_EX : public WAVEHDR { BYTE byBuffer[xxx]; // 录音的数据, } DWORD WINAPI SR_Record(HANDLE hHandle, PW……
这些我不熟啊,能不能帮写个简单的demo,我下载看看是怎么调用的,感谢啊。
jimette 2013-01-31
  • 打赏
  • 举报
回复
疑难杂症!
shn521 2013-01-31
  • 打赏
  • 举报
回复
引用 3 楼 zgl7903 的回复:
有没有处理它们的返回值, 正常来说应该会返回异常的吧
堵住了,没返回呢
zgl7903 2013-01-31
  • 打赏
  • 举报
回复
有没有处理它们的返回值, 正常来说应该会返回异常的吧
shn521 2013-01-31
  • 打赏
  • 举报
回复
引用 1 楼 dream238 的回复:
看看这几个函数的MSDN Remark部分,有没有什么调用上的逻辑问题。 特别是既然需要更改音频设置,那么是不是可以先Pause一下当前的播放再进行设置,设置完后继续。
逻辑上应该是没问题的。 “那么是不是可以先Pause一下当前的播放再进行设置,设置完后继续。”是可以的,但如果用户非法操作,会对软件影响很大,所以还是要解决非法操作阻塞的问题。
ArcRain 2013-01-31
  • 打赏
  • 举报
回复
看看这几个函数的MSDN Remark部分,有没有什么调用上的逻辑问题。 特别是既然需要更改音频设置,那么是不是可以先Pause一下当前的播放再进行设置,设置完后继续。
傻X 2013-01-31
  • 打赏
  • 举报
回复
我觉得这是这API的缺陷所致,MSDN已经说的很清楚了。一定要Pause才能设置的。 The buffer must be prepared with the waveOutPrepareHeader function before it is passed to waveOutWrite. Unless the device is paused by calling the waveOutPause function, playback begins when the first data block is sent to the device. 楼主为啥不用MCI呢?MCI控制和执行都要方便许多呢。
LiuYinChina 2013-01-31
  • 打赏
  • 举报
回复
SP_Play 也一样,要你 Play 才有声音!有点像 IOCP 的 Post 的动作,
LiuYinChina 2013-01-31
  • 打赏
  • 举报
回复
我发现里面少了些代码,看这里 http://blog.csdn.net/robertbaker/article/details/8559609 接口不用我说了吧, struct WAVE_EX : public WAVEHDR { BYTE byBuffer[xxx]; // 录音的数据, } DWORD WINAPI SR_Record(HANDLE hHandle, PWAVEHDR pWaveHeader); 调用 SR_Open 以后,可以调用 N (N >= 3) 次 SR_Record (记得填好 WAVEHDR 的参数),就开始录了,在回调里 copy 走数据,再 SR_Record,就这样循环,你懂的!
shn521 2013-01-31
  • 打赏
  • 举报
回复
引用 6 楼 RobertBaker 的回复:
http://download.csdn.net/detail/robertbaker/5019096,里面有代码,
里面有demo吗?
LiuYinChina 2013-01-31
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/robertbaker/5019096,里面有代码,

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧