簡體   English   中英

為iOS運行AppRTC,RtcEventLog問題

[英]running AppRTC for ios ,RtcEventLog issue

我想在AppRTCMobile中添加一個接口,該接口可以啟動webrtc呼叫模塊,以實現兩部電話之間的音頻通話(局域網,已經知道IP地址和端口號),但是當我成功運行時,該軟件RtcEventLog調用該方法時,每次發生異常時崩潰。 我不知道呼叫是否合理。 衷心感謝您在沒有解決方案的情況下所提供的幫助。 在源代碼下面,請幫助我找到問題。

    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();

這是崩潰發生時發生的錯誤的屏幕截圖。 如果您想了解更多,請告訴我。

您的代碼在event_log _-> LogAudioPlayout()時崩潰了。顯然,event_log_對象已被釋放。

由unique_ptr或scoped_refptr管理的對象將在執行后被釋放,但是在您的情況下仍然可以使用這些對象,這將導致崩潰問題。 因此,將這些對象放在全局存儲器中或保留它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM