【问题标题】:Agora using wrong speaker on iOS device (Unity)Agora 在 iOS 设备上使用错误的扬声器 (Unity)
【发布时间】:2020-11-12 03:42:37
【问题描述】:

初始化时

   // init engine
    mRtcEngine = IRtcEngine.GetEngine(appId);
    if (mRtcEngine == null)
        return;
    
    mRtcEngine.SetChannelProfile(CHANNEL_PROFILE.CHANNEL_PROFILE_GAME);
    mRtcEngine.SetClientRole(CLIENT_ROLE.BROADCASTER);


    // set callbacks (optional)
    mRtcEngine.OnJoinChannelSuccess = onJoinChannelSuccess;
    mRtcEngine.OnUserJoined = onUserJoined;
    mRtcEngine.OnUserOffline = onUserOffline;
    mRtcEngine.EnableWebSdkInteroperability(true);
    mRtcEngine.OnRemoteVideoStateChanged = OnRemoteVideoStateChangedHandler;
    mRtcEngine.DisableAudio();
    mRtcEngine.EnableAudioVolumeIndication(500, 3, true);
    mRtcEngine.EnableVideo();
    mRtcEngine.EnableVideoObserver();
    mRtcEngine.EnableLocalVideo(false);
    mRtcEngine.SetDefaultAudioRouteToSpeakerphone(true);
    mRtcEngine.AdjustRecordingSignalVolume(0);]
    mRtcEngine.SetLogFilter(LOG_FILTER.DEBUG | LOG_FILTER.INFO | LOG_FILTER.WARNING | LOG_FILTER.ERROR |
                            LOG_FILTER.CRITICAL);

我打电话 mRtcEngine.SetDefaultAudioRouteToSpeakerphone(true);

在我调用 JoinChannel() 之后

mRtcEngine.JoinChannel(channel, null, 0);
if (mRtcEngine.EnableVideoObserver() == Decimal.Zero)
{
   mRtcEngine.EnableVideoObserver();
}
mRtcEngine.EnableAudio();
mRtcEngine.SetEnableSpeakerphone(true);
    

我调用 setEnableSpeakerphone(true)

但它仍然从耳机中出来(好像是一个电话),我错过了一步吗?

【问题讨论】:

    标签: agora.io


    【解决方案1】:

    切换

     mRtcEngine.SetChannelProfile(CHANNEL_PROFILE.CHANNEL_PROFILE_GAME);
    

    mRtcEngine.SetChannelProfile(CHANNEL_PROFILE.CHANNEL_PROFILE_COMMUNICATION);
    

    让它工作。文档中有一条说明,游戏配置文件不允许更改扬声器。

    【讨论】:

      【解决方案2】:

      第一组代码对我来说似乎没问题。但我认为你应该把第二组代码放到回调处理程序中

      // implement engine callbacks
      private void onJoinChannelSuccess(string channelName, uint uid, int elapsed)
      {
          //    mRtcEngine.EnableVideoObserver(); // you've called this!
          mRtcEngine.EnableAudio();
          mRtcEngine.SetEnableSpeakerphone(true);
      }
      

      我在 iPhone 上尝试了代码,它是从扬声器中出来的。请注意,您可能希望使用演示应用程序作为发送者应用程序来测试它而不是重写代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-25
        • 1970-01-01
        • 2021-12-03
        • 2012-11-26
        • 1970-01-01
        • 2019-07-22
        相关资源
        最近更新 更多