ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 名课 - Power BI数据分析与可视化实战 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 游乐缘

[分享] API录制保存wav音频文件的方法

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-13 19:29 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 游乐缘 于 2022-1-13 20:21 编辑
yang央 发表于 2022-1-13 19:03
貌似mciSendString这个API的功能非常多且异常复杂,不止是你提到的录制WAV....望楼主有时间总结一下这个函 ...


解决这个问题的时候也发现了,MCI(Media Control Interface,媒体控制接口)函数中,有些只适用于一种接口方式,有些则两种接口都可以用。mciSendString只适用于命令串接口方式(命令串中不区分大小写)。The mciSendString function sends a command string to an MCI device. The device that the command is sent to is specified in the command string. (这个mciSendString函数发送一个指令字符串到一个MCI设备, 指令发送的设备在这个指令字符串中被指定.)
百度百科 mciSendString

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-13 19:31 来自手机 | 显示全部楼层
lilyhcn1 发表于 2022-1-13 19:26
发现录音失败,算了,不研究这个了。
两台电脑都没录音设备

是因为是64位office吗?有没有错误提示的截图?

TA的精华主题

TA的得分主题

发表于 2022-1-13 19:39 来自手机 | 显示全部楼层
多个录音设备的原因吧,没提示

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-13 20:06 来自手机 | 显示全部楼层
lilyhcn1 发表于 2022-1-13 19:39
多个录音设备的原因吧,没提示

哦哦,多设备可能需要指定设备才行,有待研究

TA的精华主题

TA的得分主题

发表于 2022-1-13 20:15 来自手机 | 显示全部楼层
做成基础类被人调用有意义,做功能完全会被的别的软件秒杀

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-13 20:27 来自手机 | 显示全部楼层
lilyhcn1 发表于 2022-1-13 20:15
做成基础类被人调用有意义,做功能完全会被的别的软件秒杀

举个例子来说呢?

TA的精华主题

TA的得分主题

发表于 2022-1-13 21:50 | 显示全部楼层
我想做一个录音+识别的集成软件,那录音就是基础类,必须要有可以录音,适用性强。
下列是已有录音的识别过程,如果可以录音,那就可以录完直接识别了,可能会有一些有意思的应用出现。这里识别过程是用百度的接口,我懒得自己写接口,excel调用了python来实现的接口。

至于语音软件,真是多如牛毛,我就不列举了。

XlYHkJKkZF.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-13 22:12 来自手机 | 显示全部楼层
lilyhcn1 发表于 2022-1-13 21:50
我想做一个录音+识别的集成软件,那录音就是基础类,必须要有可以录音,适用性强。
下列是已有录音的识别 ...

佩服佩服!值得学习!

TA的精华主题

TA的得分主题

发表于 2022-1-13 22:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
神仙打架,只能观望

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-21 11:27 | 显示全部楼层
分享:API播放本地wav音频功能今后音频相关的API分享都放在这一个帖子里,欢迎大家加入讨论!
本功能可以用于VBA程序开始及结束时播放系统提示音,不仅限于Msgbox文字提醒用户。
主要方法:兼容64位及32位的API函数sndPlaySound,程序PlayTheSound

  1. Option Explicit
  2. #If VBA7 Then
  3.     Public Declare PtrSafe Function sndPlaySound Lib "winmm.dll" _
  4.         Alias "sndPlaySoundA" ( _
  5.         ByVal lpszSoundName As String, _
  6.         ByVal uFlags As Long) As Long
  7. #Else
  8.     Public Declare Function sndPlaySound Lib "winmm.dll" _
  9.         Alias "sndPlaySoundA" ( _
  10.         ByVal lpszSoundName As String, _
  11.         ByVal uFlags As Long) As Long
  12. #End If

  13. Public Sub PlayTheSound(ByVal WhatSound As String, Optional Flags As Long = 0)
  14.     If InStr(1, WhatSound, ".") = 0 Then
  15.         WhatSound = WhatSound & ".wav"
  16.     End If
  17.     If Dir(WhatSound) = vbNullString Then
  18.         MsgBox "Wav file not found."
  19.         Exit Sub
  20.     End If
  21.     sndPlaySound WhatSound, Flags
  22. End Sub
复制代码
下面的代码可以列出系统自带的wav文件名称及路径:
  1. Sub ListSystemWavFiles()
  2.     Dim FSO As Object, fsoFolder As Object, fsoFile As Object
  3.     Dim i As Long
  4.    
  5.     Set FSO = CreateObject("Scripting.FileSystemObject")
  6.     Set fsoFolder = FSO.GetFolder(Environ("SystemRoot") & "\Media")
  7.     i = 1
  8.     For Each fsoFile In fsoFolder.Files
  9.         If InStr(fsoFile.Name, "wav") Then
  10.             i = i + 1
  11.             Cells(i, 1) = fsoFile.Name
  12.             Cells(i, 2) = fsoFile.Path
  13.         End If
  14.     Next fsoFile
  15. End Sub
复制代码
wav文件效果图:
image.png
示例及附件,供参考:
  1. Sub test()
  2.     PlayTheSound "C:\Windows\media\Alarm04.wav"
  3. '    PlayTheSound Range("B5")
  4. '    PlayTheSound ActiveCell.Text
  5.     '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  6.     '运行指定程序
  7.     '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  8. End Sub
复制代码


PlaySound.zip

16.33 KB, 下载次数: 8

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-12-25 02:55 , Processed in 0.036579 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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