Android app freeze on some devices after stop stream

Viktoriia

New Member
Здравствуйте. Подключаю два стрима к разным серверам, один стрим на публикацию а второй на чтение.
После того как вызываю .stop() двух стримов (сразу оба или в промежутке 10 секунд) приложение на некоторых android девайсах перестает отвечать. Если останавливаю только один стрим то такого поведения не замечено
Версия sdk 1.1.0.45
 
Last edited:

Max

Administrator
Staff member
Здравствуйте.

Нормальное использование Android SDK предполагает одновременное подключение к одному серверу.
У нас нет данных, как поведет себя приложение, если будет держать два вебсокет подключения с двумя разными серверами.
Мы проверим со своей стороны - будет ли это корректно работать.

Вопрос для чего публиковать стрим на один сервер и играть с другого? Действительно ли такой кейс нужен в продакшене? Если подробнее распишите для чего это надо, возможно сможем предложить решение с использованием существующего одного подключения.
 

Viktoriia

New Member
Приложение не отвечает даже если я читаю и публикую на один сервер или читаю два стрима с одного сервера. Данное поведение только на некоторых android девайсах, в большинстве случае все работает корректно
 

Viktoriia

New Member
Приложение не отвечает даже если вызываю session.disconnect(); опять таки только на некоторых девайсах
Вот девайс на котором проявляется проблема
 

Attachments

Viktoriia

New Member
Я запустила на данном девайсе ваш пример с двумя плеерами 2 Players и приложение зависло после того как я сначала остановила первый стрим(приложение работает) а потом второй стрим(приложение не отвечает)
 

Max

Administrator
Staff member
Спасибо. Проверим на наших устройствах. Отпишем по результатам.
 

Max

Administrator
Staff member
Провели тесты с приложением 2Players из сборки 1.1.0.55. Проблема не воспроизвелась на всех тестовых устройствах (включая Xiaomi Redmi 9 с MIUI 12.5.3).
Отметим, что подключение к серверу и отключение от него, запуск и остановка проигрывания стрима могут быть длительными процессами. Поэтому после вызова метода Stream.stop() рекомендуется блокировать нажатия кнопок пользователем до получения статуса потока StreamStatus.STOPPED: Блокировка и разблокировка кнопок в Android приложении. Если действий пользователя не предусмотрено, то метод stop() для второго стрима рекомендуется вызывать после изменения статуса первого стрима, например:
Code:
stream1.on(new StreamStatusEvent() {
    @Override
    public void onStreamStatus(final Stream stream, final StreamStatus streamStatus) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                ...
                if (StreamStatus.STOPPED.equals(streamStatus)) {
                     stream2.stop();
                     ...
                }
           }
       });
    }
});
Также просим уточнить, действительно ли актуальна задача одновременной публикации/проигрывания в одном приложении с двух разных серверов, с установкой двух websocket соединений?
 

Viktoriia

New Member
Спсибо что проверили, но проблема на Xiaomi Redmi 9 не воспроизводится и у меня, а вот на Redme Note 8 есть.
Задача одновременной публикации/проигрывания в одном приложении с двух разных серверов, с установкой двух websocket соединений актуальна и с ней нет проблем на большинстве устройств.
Моя проблема заключается в остановке двух стримов даже при подключении к одному серверу. Попробую решение которое вы предложили, но я второй стрим останавливаю через 10 секунд после остановки первого стрима, так что думаю за 10 секунд он в любом случае должен был остановится
 

Max

Administrator
Staff member
Спсибо что проверили, но проблема на Xiaomi Redmi 9 не воспроизводится и у меня, а вот на Redme Note 8 есть.
Еще раз уточните, пожалуйста: воспроизводится ли проблема в примере 2Players из сборки 1.1.0.55 (нужно установить на устройство 2players-debug.apk) на Redmi Note 8T? Если да, на каких еще устройствах она воспроизводится в этом примере?
Если проблема не воспроизводится в собранном примере из вышеуказанной сборки, но воспроизводится на Вашем коде, модифицируйте код примера минимально для того, чтобы проблема начала воспроизводиться, и пришлите код, используя эту форму.
 

Viktoriia

New Member
Да, ваш пример брала с этой сборки, и 2players-release.apk и 2players-debug.apk
На девайсах Redmi Note 9 Pro и Redmi Note 8T происходит фриз приложения после остановки второго стрима
 

Max

Administrator
Staff member
На девайсах Redmi Note 9 Pro и Redmi Note 8T происходит фриз приложения после остановки второго стрима
Воспроизведите проблему, соберите лог с устройства и пришлите, используя эту форму. Также, если тестируете со своим инстансом WCS, соберите лог с сервера за то же время, используя report.sh, и приложите к логу, снятому с устройства.
 

Max

Administrator
Staff member
Добрый день.
Мы сделали пример на две Websocket сессии в одном приложении: Android 2 Sessions
В этом примере описанная проблема не воспроизводится в наших тестах на Redmi 9 (MIUI 12.5). Проверьте, воспроизводится ли проблема у Вас в этом примере из сборки 1.1.0.57
 

Viktoriia

New Member
Добрый день. Спасибо за билд. Но проблема всё ещё воспроизводится в примере Android 2 Sessions если я останавливаю проигрование и публикацию стрима
 

Max

Administrator
Staff member
Добрый день. Спасибо за билд. Но проблема всё ещё воспроизводится в примере Android 2 Sessions если я останавливаю проигрование и публикацию стрима
Опишите пошагово процесс воспроизведения, пожалуйста.
 

Viktoriia

New Member
1 Запускаю стрим на publish
2 Запускаю этот же стрим на проигрывание
3 Останавливаю проигрывание стрима
4 Останавливаю публикацию стрима

После 4-го шага у меня приложение зависает
Я работала только с 1 сессией
 

Max

Administrator
Staff member
По данному сценарию проблема не воспроизводится на Xiaomi Redmi 9 (MIUI 12.5.4, Android 11). Уточните, пожалуйста. все модели телефонов, на которых это воспроизводится.
 

Viktoriia

New Member
По данному сценарию проблема не воспроизводится на Xiaomi Redmi 9 (MIUI 12.5.4, Android 11). Уточните, пожалуйста. все модели телефонов, на которых это воспроизводится.
Redmi Note 8T
 

Max

Administrator
Staff member
Также уточните:
1. Версию MIUI и версию Android на данном аппарате
2. Воспроизводится ли проблема с 2sessions-debug.apk из архива сборки 1.1.0.57 с подключением к demo.flashphoner.com (сборка WCS 5.2.1170)?
 
Last edited:

Viktoriia

New Member
Также уточните:
1. Версию MIUI и версию Android на данном аппарате
2. Воспроизводится ли проблема с 2sessions-debug.apk из архива сборки 1.1.0.57 с подключением к demo.flashphoner.com (сборка WCS 5.2.1170)?
1. MIUI Global 12.5.2 Android 11 RKQ1.201004.002
2. Да, вопспроизводится
 

Attachments

Max

Administrator
Staff member
Воспроизводится ли та же проблема в примере streaming-min-debug.apk на данном аппарате?
 
Top