Не работает просмотр в Safari MacOS

taruk

New Member
В консоли браузера получаю такую ошибку
Unhandled Promise Rejection: InvalidAccessError: Failed to set remote answer sdp: Duplicate a=mid value '2'.
Как я могу это решить?
 

Max

Administrator
Staff member
Добрый день.
Пожалуйста, обновите сервер до последней сборки с этой страницы. Если проблема продолжает воспроизводиться, уточните следующее:
1) какой именно браузер в какой именно ОС вы тестируете, включая версии;
2) на каком примере воспроизводится данная проблема.
 

taruk

New Member
Добрый день.
Пожалуйста, обновите сервер до последней сборки с этой страницы. Если проблема продолжает воспроизводиться, уточните следующее:
1) какой именно браузер в какой именно ОС вы тестируете, включая версии;
2) на каком примере воспроизводится данная проблема.
а как обновить сервер? или просто переустановить?
 

taruk

New Member
Обновил, ошибка осталась такая же.
1. По поводу браузера и системы - писал в самом вопросе
2. Не понял по поводу примера, но вот мой код
Code:
var remoteVideo;

    function init(){
       Flashphoner.init();
       remoteVideo = document.getElementById("remoteVideo");
      
       Flashphoner.createSession({urlServer: "wss://ih1601509.vds.myihor.ru:8443"}).on(Flashphoner.constants.SESSION_STATUS.ESTABLISHED, function (session) {
           //session connected, start streaming
           startPlayback(session);
       }).on(Flashphoner.constants.SESSION_STATUS.DISCONNECTED, function () {
           setStatus("DISCONNECTED");
       }).on(Flashphoner.constants.SESSION_STATUS.FAILED, function () {
           setStatus("FAILED");
       });
    }
   
    function startPlayback(session) {
       session.createStream({
           name: "stream$wid",
           display: remoteVideo,
           cacheLocalResources: true,
           receiveVideo: true,
           receiveAudio: true
       }).on(Flashphoner.constants.STREAM_STATUS.PLAYING, function (playStream) {
           $('.coverVideo').hide();
       }).on(Flashphoner.constants.STREAM_STATUS.STOPPED, function () {
           setStatus(Flashphoner.constants.STREAM_STATUS.STOPPED);
       }).on(Flashphoner.constants.STREAM_STATUS.FAILED, function () {
           setStatus(Flashphoner.constants.STREAM_STATUS.FAILED);
       }).play();
    }
   
    function setStatus(status) {
       console.log(status);
    }
   
    init();
 

Max

Administrator
Staff member
Добрый день.
Если выполнить публикацию/воспроизведение трансляции на вашем сервере, она работает корректно?
Code:
https://{доменное имя или IP-адрес вашего сервера WCS}:8444/client2/examples/demo/streaming/two_way_streaming/two_way_streaming.html
 

taruk

New Member
Добрый день.
Если выполнить публикацию/воспроизведение трансляции на вашем сервере, она работает корректно?
Code:
https://{доменное имя или IP-адрес вашего сервера WCS}:8444/client2/examples/demo/streaming/two_way_streaming/two_way_streaming.html
да, все работает хорошо
 

Max

Administrator
Staff member
Добрый день.
Для того, чтобы играть WebRTC поток в Safari (на MacOS или iOS), перед воспроизведением необходимо вызвать специальную функцию playFirstVideo(), например
Code:
    if (Flashphoner.getMediaProviders()[0] === "WSPlayer") {
        Flashphoner.playFirstSound();
    } else if (Browser.isSafariWebRTC() || Flashphoner.getMediaProviders()[0] === "MSE") {
        Flashphoner.playFirstVideo(remoteVideo, false);
    }

    session.createStream({
        name: streamName,
        display: remoteVideo
    }).on(STREAM_STATUS.PENDING, function (stream) {
    ...
    }).play();
См также код примера Two Way Streaming на GitHub.
 

taruk

New Member
оказывается, проблема в том, что safari не может автоматически проигрывать видео. надо начинать просмотр по нажатию кнопки
 

Chanturia

Member
Добрый день.
Для того, чтобы играть WebRTC поток в Safari (на MacOS или iOS), перед воспроизведением необходимо вызвать специальную функцию playFirstVideo(), например
Code:
    if (Flashphoner.getMediaProviders()[0] === "WSPlayer") {
        Flashphoner.playFirstSound();
    } else if (Browser.isSafariWebRTC() || Flashphoner.getMediaProviders()[0] === "MSE") {
        Flashphoner.playFirstVideo(remoteVideo, false);
    }

    session.createStream({
        name: streamName,
        display: remoteVideo
    }).on(STREAM_STATUS.PENDING, function (stream) {
    ...
    }).play();
См также код примера Two Way Streaming на GitHub.
это будет работать для конференций?
 

Max

Administrator
Staff member
Добрый день.
Да, playFirstVideo() необходимо вызывать во всех случаях воспроизведения видео. См пример Conference на GitHub.
 

Chanturia

Member
Добрый день.
Да, playFirstVideo() необходимо вызывать во всех случаях воспроизведения видео. См пример Conference на GitHub.
у меня ругается на отсутсвие Browser когда пытаюсь проверить Browser.isSafariWebRTC()
 

Max

Administrator
Staff member
По указанным вами в коде данным ( {urlServer: "wss://ih1601509.vds.myihor.ru:8443"} ), мы ознакомились со статистикой WCS:
Code:
https://ih1601509.vds.myihor.ru:8888/?action=stat
-----Version info-----
wcs_version=5.2.245-a6a96a96f611a81872da19a93c0d0d1500108de7
wcs_client_version=0.5.28.2753-149855cc050bf7512817104fd0104e9cce760ac4

Вам необходимо обновить WCS до последней версии по инструкции и повторить тестирование.
 
Last edited:
Top