记一次webrtc Core audio崩溃的bug

    网上随便下了一个webrtc window 版的例子,前段时间运行的好好的,不知系统改了啥,一运行就崩溃了,报错长这样

崩溃报错

  直接就死在初始化工厂那里,日志信息如下,百度、google 搜了一遍全部也没有找到解决办法

webrtc_video_engine.cc:473): WebRtcVideoEngine::WebRtcVideoEngine()
(webrtc_voice_engine.cc:196): WebRtcVoiceEngine::WebRtcVoiceEngine
(webrtc_voice_engine.cc:219): WebRtcVoiceEngine::Init
(webrtc_voice_engine.cc:227): Supported send codecs in order of preference:
(webrtc_voice_engine.cc:230): opus/48000/2 { minptime=10 useinbandfec=1 } (111)
(webrtc_voice_engine.cc:230): ISAC/16000/1 (103)
(webrtc_voice_engine.cc:230): ISAC/32000/1 (104)
(webrtc_voice_engine.cc:230): G722/8000/1 (9)
(webrtc_voice_engine.cc:230): ILBC/8000/1 (102)
(webrtc_voice_engine.cc:230): PCMU/8000/1 (0)
(webrtc_voice_engine.cc:230): PCMA/8000/1 (8)
(webrtc_voice_engine.cc:230): CN/32000/1 (106)
(webrtc_voice_engine.cc:230): CN/16000/1 (105)
(webrtc_voice_engine.cc:230): CN/8000/1 (13)
(webrtc_voice_engine.cc:230): telephone-event/48000/1 (110)
(webrtc_voice_engine.cc:230): telephone-event/32000/1 (112)
(webrtc_voice_engine.cc:230): telephone-event/16000/1 (113)
(webrtc_voice_engine.cc:230): telephone-event/8000/1 (126)
(webrtc_voice_engine.cc:233): Supported recv codecs in order of preference:
(webrtc_voice_engine.cc:236): opus/48000/2 { minptime=10 useinbandfec=1 } (111)
(webrtc_voice_engine.cc:236): ISAC/16000/1 (103)
(webrtc_voice_engine.cc:236): ISAC/32000/1 (104)
(webrtc_voice_engine.cc:236): G722/8000/1 (9)
(webrtc_voice_engine.cc:236): ILBC/8000/1 (102)
(webrtc_voice_engine.cc:236): PCMU/8000/1 (0)
(webrtc_voice_engine.cc:236): PCMA/8000/1 (8)
(webrtc_voice_engine.cc:236): CN/32000/1 (106)
(webrtc_voice_engine.cc:236): CN/16000/1 (105)
(webrtc_voice_engine.cc:236): CN/8000/1 (13)
(webrtc_voice_engine.cc:236): telephone-event/48000/1 (110)
(webrtc_voice_engine.cc:236): telephone-event/32000/1 (112)
(webrtc_voice_engine.cc:236): telephone-event/16000/1 (113)
(webrtc_voice_engine.cc:236): telephone-event/8000/1 (126)
(audio_device_impl.cc:84): Create
(audio_device_impl.cc:92): CreateForTest
(audio_device_buffer.cc:63): AudioDeviceBuffer::ctor
(audio_device_impl.cc:130): AudioDeviceModuleImpl
(audio_device_impl.cc:134): CheckPlatform
(audio_device_impl.cc:139): current platform is Win32
(audio_device_impl.cc:164): CreatePlatformSpecificObjects
(audio_device_impl.cc:946): PlatformAudioLayer
(audio_device_impl.cc:186): Attempting to use the Windows Core Audio APIs...
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\clbcatq.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\MMDevAPI.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\devobj.dll”。
(audio_device_core_win.cc:436): AudioDeviceWindowsCore created
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\avrt.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\MFWMAAEC.DLL”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\AudioSes.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\powrprof.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\umpdc.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\WinTypes.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\Windows.UI.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\TextInputFramework.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\InputHost.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\CoreUIComponents.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\CoreMessaging.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\CoreMessaging.dll”。
“WebrtcTest.exe”(Win32): 已卸载“C:\Windows\System32\CoreMessaging.dll”
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\ntmarta.dll”。
“WebrtcTest.exe”(Win32): 已加载“C:\Windows\System32\ResourcePolicyClient.dll”。
(audio_device_core_win.cc:1918): nChannels=2, nSamplesPerSec=48000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=1, nSamplesPerSec=48000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=2, nSamplesPerSec=44100 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=1, nSamplesPerSec=44100 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=2, nSamplesPerSec=16000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=1, nSamplesPerSec=16000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=2, nSamplesPerSec=96000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=1, nSamplesPerSec=96000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=2, nSamplesPerSec=32000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=1, nSamplesPerSec=32000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=2, nSamplesPerSec=8000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
(audio_device_core_win.cc:1918): nChannels=1, nSamplesPerSec=8000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000
avcore\audiocore\client\audioclient\audioclientcore.cpp(1536)\AUDIOSES.DLL!00007FF8EFC10519: (caller: 00007FF8EFBF32C7) ReturnHr(1) tid(61fc) 887C0030 (audio_device_core_win.cc:2005): IAudioClient::Initialize() failed:
(audio_device_core_win.cc:4183): Core Audio method failed (hr=-2004287480)
(audio_device_core_win.cc:4186): Error details: 杞橆房"
(audio_device_core_win.cc:350): AudioDeviceWindowsCore::CoreAudioIsSupported() Failed to use Core Audio Playout for device id=1
(audio_device_core_win.cc:350): AudioDeviceWindowsCore::CoreAudioIsSupported() Failed to use Core Audio Playout for device id=2
(audio_device_core_win.cc:533): ~AudioDeviceWindowsCore destroyed
“WebrtcTest.exe”(Win32): 已卸载“C:\Windows\System32\avrt.dll”
(audio_device_core_win.cc:580): AudioDeviceWindowsCore::~AudioDeviceWindowsCore() the Avrt DLL module is now unloaded
“WebrtcTest.exe”(Win32): 已卸载“C:\Windows\System32\MFWMAAEC.DLL”
“WebrtcTest.exe”(Win32): 已卸载“C:\Windows\System32\TextInputFramework.dll”
“WebrtcTest.exe”(Win32): 已卸载“C:\Windows\System32\ntmarta.dll”
“WebrtcTest.exe”(Win32): 已卸载“C:\Windows\System32\CoreMessaging.dll”
“WebrtcTest.exe”(Win32): 已卸载“C:\Windows\System32\CoreUIComponents.dll”
“WebrtcTest.exe”(Win32): 已卸载“C:\Windows\System32\InputHost.dll”
“WebrtcTest.exe”(Win32): 已卸载“C:\Windows\System32\Windows.UI.dll”
(audio_device_impl.cc:311): Failed to create the platform specific ADM implementation.
(audio_device_impl.cc:325): ~AudioDeviceModuleImpl
(audio_device_buffer.cc:75): AudioDeviceBuffer::~dtor

 只好乖乖分析日志,看有没有头绪,查询错误码大概是说格式不匹配,然后日志有一行nChannels=2, nSamplesPerSec=48000 is not supported. Closest match: nChannels=2, nSamplesPerSec=192000,该不会是声音录制格式不对???

 

抱着死马当活马医的心态,将声音输出格式改了下,居然好了!!!估计就是webrtc 找不到想要录制的声音采样格式,直接丢一个异常崩溃(不带这么坑的。。。)解决办法就是将系统扬声器默认格式改为日志中要求的几个格式中的一个就行。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值