HarmonyOS 如何指定不同的录音设备进行录音?
如何指定不同的录音设备进行录音?
目前正在进行APPHarmonyOS化的开发工作,在原有Unity工程中,有选择不同输入设备进行录音的项目需求,比如手机的麦克风,和蓝牙耳机的麦克风。实现如下:
// Unity代码:
Microphone.Start(deviceName, true, nLenSec, nDeviceFreq);
其中deviceName,即输入设备名称。
1,我司在查阅贵司API文档时(API11 Developer Preview1),使用了audio.AudioCapturer进行录音操作,在使用audio.createAudioCapturer函数时,发现传入参数,没有具体输入设备的指定,其中的audio.SourceType,枚举为:
SOURCE_TYPE_INVALID,SOURCE_TYPE_MIC,SOURCE_TYPE_VOICE_RECOGNITION...,
感觉不是指的哪个具体设备。
2,再次查阅文档,发现如下代码,可返回手机麦克风和蓝牙麦克风:
this.audioRoutingManager.getDevices(audio.DeviceFlag.INPUT_DEVICES_FLAG).then((data: audio.AudioDeviceDescriptors) => {
console.info('Promise returned to indicate that the device list is obtained.');
data.forEach((value: audio.AudioDeviceDescriptor)=>{
console.info('device:' + value.deviceType + ' display:'+value.displayName + ' name:'+value.name + ' sample:' + value.sampleRates + ' channel:' + value.channelCounts);
});
});
3,也能监听到设备的拔插:
// 监听音频设备状态变化
this.audioRoutingManager.on('deviceChange', audio.DeviceFlag.INPUT_DEVICES_FLAG, (deviceChanged: audio.DeviceChangeAction) => {
console.info('device change type : ' + deviceChanged.type); // 设备连接状态变化,0为连接,1为断开连接
console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole); // 设备角色
console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType); // 设备类型
});
当前总结:但仅仅获取这些输入设备列表对我们项目需求还不够,感知设备的拔插,或许可以适时刷新输入设备,但对最终需求还是不能满足。我们的目的,是指定输入设备,比如指定蓝牙耳机麦克风,而不是手机麦克风,进行录音。【但未发现相关API,如有,希望能指出。】
另外,我们想了另一种可能,即HarmonyOS系统,会不会通过在系统界面,选择设备,来指定输入设备的呢?但我们进行了选择音频设备的操作(视频看附件),进行录音后,发现输入设备还是手机麦克风在执行(大概是这样,不太确定),这与我们的预期不符。此外,即使做最好的打算,假设确实这样操作能使输入设备变更,我们也不知道通过什么API来获取当前音频设备已变更的通知,如果有,能否告知,我们再进一步测试。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 录音,希望能有录音Demo
52浏览 • 1回复 待解决
HarmonyOS录音报错问题
406浏览 • 1回复 待解决
HarmonyOS录音音频如何存放,以及遍历
321浏览 • 1回复 待解决
求大佬告知如何实现录音监听
1828浏览 • 1回复 待解决
HarmonyOS 应用拉起系统录音机
371浏览 • 1回复 待解决
HarmonyOS 工程机怎么获取系统的录音文件
282浏览 • 1回复 待解决
HarmonyOS native层如何实现录音和录屏能力?
48浏览 • 1回复 待解决
AudioCapturer录音+AudioRenderer播放音频
1151浏览 • 1回复 待解决
录音时如何获取 当前输入的音量大小
5526浏览 • 1回复 待解决
录音后文件转mp3,是否支持录音后可将文件转成mp3?
37浏览 • 1回复 待解决
HarmonyOS 使用AudioCapturer录音过程中闪退
63浏览 • 1回复 待解决
HarmonyOS的media.AVRecorder支持设置最大录音文件大小和录音质量(类似quality字段,1到100)吗?
300浏览 • 1回复 待解决
js fa怎么实现录音功能呢?
5179浏览 • 1回复 待解决
HarmonyOS AVPlayer播放本地沙箱目录音频文件
135浏览 • 1回复 待解决
HarmonyOS H5拉起系统录音能力的样例代码
180浏览 • 1回复 待解决
如何利用鸿蒙OS的JS组件----实现录音机的功能?
5477浏览 • 1回复 待解决
HarmonyOS 使用OpenSL ES开发音频录制功能,如何开启voip通话录音?
61浏览 • 1回复 待解决
自动播放通话录音,下拉通知栏即可关闭(消失)!
8942浏览 • 1回复 待解决
鸿蒙手机app开发,请问使用jsUI框架怎样采集手机录音播放
5540浏览 • 1回复 待解决
语音识别读取本地实时录音报1002200010语音识别未启动错误
488浏览 • 1回复 待解决
链接多台设备时hdc命令如何指定目标设备?
9235浏览 • 1回复 待解决
如何进行不同规格的AES加解密
670浏览 • 1回复 待解决
如何根据设备的环境参数判断不同的场景?
289浏览 • 1回复 待解决
如何在DevEco studio中设置不同的构建配置,以生成针对不同设备的hap包?
394浏览 • 1回复 待解决
当前三方应用不支持指定录音输入设备,仅系统应用支持此能力。
对于audioRoutingManager.on('preferredInputDeviceChangeForCapturerInfo')这个接口:
这个接口监听的是优先级最高的录音设备,并不是当前录音设备,它的含义是,应用传入一个AudioCapturerInfo,监听的是,如果应用使用这个AudioCapturerInfo开始录音,那么它会使用什么录音设备,因为不同的AudioCapturerInfo可能对应不同的录音设备,所以并不一定就是当前设备(不过大部分场景二者是一致的)。