📄 如何实现wav文件的减速播放.txt
字号:
VB干 不 了 这 个 活 。 声 音 的 慢 放 是 个 很 复 杂 的 问 题 , 单 纯 的 慢 放 会 引 起 声 音 严 重 失 真 , 前 年 (1997)《 音 像 世 界 》 的 《 音 像 博 士 》 曾 回 答 过 这 个 问 题 , 你 可 以 查 阅 了 解 声 音 慢 放 。
<END>
引 入 directX库 :
建 立 command1.command2
HScroll2(取 值 在 100,32767)
'------------------
Dim dx As New DirectX7
Dim ds As DirectSound
Dim dsb As DirectSoundBuffer
Private Sub Command1_Click()
dsb.Play 1
End Sub
Private Sub Command2_Click()
dsb.Stop
End Sub
Private Sub Form_Load()
Set ds = dx.DirectSoundCreate("")
ds.SetCooperativeLevel Me.hWnd, DSSCL_PRIORITY
loadwav
End Sub
Private Sub loadwav()
Dim desc As DSBUFFERDESC
Dim wa As WAVEFORMATEX
desc.lFlags = DSBCAPS_CTRLFREQUENCY Or DSBCAPS_CTRLPAN Or DSBCAPS_CTRLVOLUME Or DSBCAPS_STATIC
Set dsb1 = ds.CreateSoundBufferFromFile("f:\bye.wav", desc, wa)
Set dsb = ds.CreateSoundBufferFromFile("f:\welcome.wav", desc, wa)
End Sub
Private Sub HScroll2_Change()
dsb.SetFrequency HScroll2.Value
End Sub
<END>
通 过 修 改 WAV文 件 格 式 区 的 采 样 率 可 以 实 现 WAV慢 放 ,首 先 把 DEMO.WAV调 入 内 存 ,在 偏 移 地 址 为 18H处 读 出 一 个 整 型 数 (4 BYTES),把 它 除 以 2再 写 回 去 ,同 样 对 1CH处 读 出 一 个 整 型 数 (4 BYTES),把 它 除 以 2再 写 回 去 ,播 放 这 一 段 内 存 即 可 。
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -