Пример трансляции Basi c с использованием agora.io не работает - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь заставить аудио-трансляцию agora.io работать на веб-странице, следуя этому примеру .

Все работает, , если Я также транслирую видео. Если я передаю аудио только , ничего не отображается, ничего не слышно, но в консоли не отображаются ошибки.

Вот мой HTML:

 <div class="video-grid" id="video">
   <div class="video-view">
     <div id="local_stream" class="video-placeholder"></div>
     <div id="local_video_info" class="video-profile hide"></div>
     <div id="video_autoplay_local" class="autoplay-fallback hide"></div>
   </div>
 </div>

Вот код моей Агоры:

var rtc = {
  client: null,
  joined: false,
  published: false,
  localStream: null,
  remoteStreams: [],
  params: {}
};

// Options for joining a channel
//Self-generated token
var option = {
  appID: "{{myappid}}",
  channel: "event-2123",
  uid: "1",
  token: "{{mytoken}}"
}

rtc.client = AgoraRTC.createClient({mode: "live", codec: "h264"});

// Initialize the client
rtc.client.init(option.appID, function () {
  console.log("init success");

    // Join a channel
    rtc.client.join(option.token ? option.token : null, option.channel, option.uid ? +option.uid : null, function (uid) {
        console.log("join channel: " + option.channel + " success, uid: " + uid);
        rtc.params.uid = uid;



        rtc.client.setClientRole("host");

        rtc.localStream = AgoraRTC.createStream({
            streamID: rtc.params.uid,
            audio: true,
            video: true,
            screen: false,
        })

        // Initialize the local stream
        rtc.localStream.init(function () {
            console.log("--------");
          console.log("init local stream success");
          // play stream with html element id "local_stream"
          rtc.localStream.play("local_stream");

            // Publish the local stream
            rtc.client.publish(rtc.localStream, function (err) {
              console.log("publish failed");
              console.error(err);
            })


        }, function (err) {
          console.error("init local stream failed ", err);
        });



      }, function(err) {
        console.error("client join failed", err)
    })

  }, (err) => {
  console.error(err);
});

Это работает (но, похоже, не в Safari). Но если я изменяю параметры потока на это, ничего не работает:

        rtc.localStream = AgoraRTC.createStream({
            streamID: rtc.params.uid,
            audio: true,
            video: false,
            screen: false,
        })

Я заметил, что в некоторых браузерах видео по умолчанию отключено. Итак, если элементы интерфейса не отображаются, а приглушение включено, возможно, это является источником проблемы?

Как заставить это работать?

...