首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行ios的AppRTC,RtcEventLog问题

运行ios的AppRTC,RtcEventLog问题
EN

Stack Overflow用户
提问于 2018-01-05 15:47:28
回答 1查看 146关注 0票数 0

我想在AppRTCMobile中添加一个接口,这个接口可以启动webrtc模块,以实现两部手机(局域网,已经知道IP地址和端口号)之间的语音通话,但是当我运行成功时,每次RtcEventLog调用该方法时都会出现异常,导致软件崩溃。我不知道呼叫呼叫是否合理。我真诚地感谢您在没有解决方案的情况下给予我的帮助。下面的源代码,请帮我找出问题所在。

代码语言:javascript
复制
    std::unique_ptr<RtcEventLog> event_log = webrtc::RtcEventLog::Create();
    webrtc::Call::Config callConfig = webrtc::Call::Config(event_log.get());
    callConfig.bitrate_config.max_bitrate_bps = 500*1000;
    callConfig.bitrate_config.min_bitrate_bps = 100*1000;
    callConfig.bitrate_config.start_bitrate_bps = 250*1000;

    webrtc::AudioState::Config audio_state_config = webrtc::AudioState::Config();
    cricket::VoEWrapper* g_voe  = nullptr;
    rtc::scoped_refptr<webrtc::AudioDecoderFactory> g_audioDecoderFactory;
    g_audioDecoderFactory = webrtc::CreateBuiltinAudioDecoderFactory();
    g_voe = new cricket::VoEWrapper();
    audio_state_config.audio_processing = webrtc::AudioProcessing::Create();
    g_voe->base()->Init(NULL,audio_state_config.audio_processing,g_audioDecoderFactory);
    audio_state_config.voice_engine = g_voe->engine();

    audio_state_config.audio_mixer = webrtc::AudioMixerImpl::Create();
    callConfig.audio_state = AudioState::Create(audio_state_config);
    std::unique_ptr<RtcEventLog> event_logg = webrtc::RtcEventLog::Create();
    callConfig.event_log = event_logg.get();
    g_call = webrtc::Call::Create(callConfig);



    g_audioSendTransport = new AudioLoopbackTransport();
    webrtc::AudioSendStream::Config config(g_audioSendTransport);
    g_audioSendChannelId = g_voe->base()->CreateChannel();
    config.voe_channel_id = g_audioSendChannelId;
    g_audioSendStream = g_call->CreateAudioSendStream(config);


    webrtc::AudioReceiveStream::Config AudioReceiveConfig;
    AudioReceiveConfig.decoder_factory = g_audioDecoderFactory;
    g_audioReceiveChannelId = g_voe->base()->CreateChannel();
    AudioReceiveConfig.voe_channel_id = g_audioReceiveChannelId;
    g_audioReceiveStream = g_call->CreateAudioReceiveStream(AudioReceiveConfig);

    g_audioSendStream->Start();
    g_audioReceiveStream->Start();

Here's a screenshot of the error that occurred when the crash occurred. Please tell me if you want to know more.

EN

回答 1

Stack Overflow用户

发布于 2018-01-12 15:19:02

您的代码在event_log_->LogAudioPlayout()时崩溃...很明显,event_log_对象已经发布了。

由unique_ptr或scoped_refptr管理的对象在执行后会被释放,但这些对象在您的情况下可能仍会使用,这将导致崩溃问题。因此,将这些对象放在全局内存中或保留它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48109289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档