播放声音文件

feng 2000-06-22 01:45:00
小弟近日做一个播放PCM样点的程序.用的函数是:waveOutOpen,waveOutPrepareHeader
waveOutWrite,现在有一个问题想请教各位大侠,在重复执行waveOutWrite函数时
下一段声音将冲掉上一段未播放完的声音.我想使播放的声音连续该怎么做.有源代码最好(另加100分).先行谢过
...全文
277 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2000-06-23
  • 打赏
  • 举报
回复
To wuchuncai:
1:我的程序当然能够正常运行,你可以下载:
http://210.77.145.209/csdn/softs/softview.asp?id=465
测试。

2:Sorry我对图象处理极端不专业,帮不上手。
wuchuncai 2000-06-23
  • 打赏
  • 举报
回复
Un1:
vb我不熟悉,至于你的程序能否正常运行,我不清楚。我的程序是vc的,广泛应用于非编。
如果你能提供 1.Bezier曲线的抗齿算法,即在32位色的显示方式下,在屏幕上画一光滑的Bezier曲线,速度不能比画普通Bezier曲线慢2倍以上。
2.图象的放缩。达到photoshop的水平。
一个问题回答正确,可以得到200元。
wuchuncai@sohu.com
Un1 2000-06-22
  • 打赏
  • 举报
回复


'do not changed any in this function for speed reason
Private Sub CheckOutBuf(WaveOutHDR As WAVEHDR)
With WaveOutHDR
If (.dwFlags And WHDR_DONE) = WHDR_DONE Then
With colBufs

Dim bt() As Byte
bt = .Item(1)
.Remove 1

End With

Dim ll As Long
ll = LBound(bt)

Dim l As Long
l = UBound(bt) + 1 - ll

CopyMemory ByVal .lpData, bt(ll), l

.dwBufferLength = l
l = waveOutWrite(hWaveOut, WaveOutHDR, Len(WaveOutHDR))
End If
End With
End Sub

'do not changed any in this function for speed reason
Private Sub tmTimer_Timer()
On Error Resume Next

If hWaveOut Then
CheckOutBuf mWaveOutHDR

CheckOutBuf mWaveOutHDR1
End If
End Sub


'To wuchuncai:
这样不会断了你的财路吧?:)
xielm 2000-06-22
  • 打赏
  • 举报
回复
ON_MESSAGE(MM_WOM_DONE, OnWaveOutFinish)
放完一段收到MM_WOM_DONE再放下一段。
僅是探討一下。這樣會有一點斷續的感覺。
wuchuncai 2000-06-22
  • 打赏
  • 举报
回复
如果你愿意付100元人民币,我可以email给你,
因为我是专业程序员,以此为生。
我的email为wuchuncai@sohu.com

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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