Android SDK стрим идет, картинки нет

deoandreas

New Member
Видео: https://dropmefiles.com/UyL8M, тут же логи.
Хотя пермишен был выдан :(
Скажите пожалуйста в чем может быть проблема.
Code:
plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.some.example"
        minSdk 26
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {
    implementation files("libs/wcs.aar")
    implementation 'androidx.core:core-ktx:1.6.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2'

    implementation 'com.neovisionaries:nv-websocket-client:2.14'
//    implementation 'com.google.code.gson:gson:2.8.6'
//    implementation 'com.androidx.support:support-v4:28.0.0'
}
Код Screen Sharing был взят из репозитория Flashphoner на GitHub, но все равно лучше прикрпелю еще и его: https://gist.github.com/deoandreas/dcd84e185831b4d562a55521cc17d092
 

Max

Administrator
Staff member
Добрый день.
Судя по скриншоту, Вы пытаетесь публиковать видео из эмулятора Android. WebRTC требует очень много ресурсов (например, каждый пакет шифруется), поэтому проверки стриминга не работают нормально в эмуляторах. Пожалуйста, тестируйте на физическом устройстве.
Кроме того, Вы пытаетесь играть HLS с сервера. Этот способ требует дополнительной настройки на стороне сервера. В частности, по умолчанию для HLS всегда включается транскодинг, чтобы нормализовать FPS и отсылку ключевых кадров. Демо сервер не оптимизирован для HLS. Рекомендуем играть поток с сервера по WebRTC (примеры TwoWayStreaming, Player).
Проверьте также, воспроизводится ли проблема в собранном примере screen-sharing-debug.apk, доступном в сборке 1.1.0.45.
 

deoandreas

New Member
Здравствуйте! Помогло решение сменить targetSdk 31 на targetSdk 28 и все заработало.
Подскажите почему, картинка не передается при других версиях SDK?
 

Max

Administrator
Staff member
Здравствуйте! Помогло решение сменить targetSdk 31 на targetSdk 28 и все заработало.
Подскажите почему, картинка не передается при других версиях SDK?
WCS Android SDK использует определенную сборку WebRTC библиотеки libjingle_peerconnection. Библиотека собирается из исходных текстов, и требования к SDK определяются ими. Поскольку мы поддерживаем клиентов с Android 8 и выше, мы не можем повышать версию SDK без выпуска очередной минорной версии WCS Android SDK.
Проверьте, работает ли публикация при targetSdk 29 (текущее требование Google для выкладывания новых приложений в Google Play). Если нет, мы заведем тикет по обновлению WebRTC библиотеки.
 

Max

Administrator
Staff member
targetSdk 29 стрим идет, но картинки нет
Завели тикет WCS-3379, сообщим здесь о результате. Работы могут занять продолжительное время и, возможно, приведут к выпуску очередной минорной версии WCS Android SDK.
 

deoandreas

New Member
Завели тикет WCS-3379, сообщим здесь о результате. Работы могут занять продолжительное время и, возможно, приведут к выпуску очередной минорной версии WCS Android SDK.
спасибо ☺
 

Max

Administrator
Staff member
Добрый день.
Мы сообщаем о текущем статусе здесь, в данном топике. Форум используется как публичный багтрекер.
По тикету WCS-3379 промежуточные результаты пока такие: при выставлении targetSDK: 31 при сборке Android SDK и примеров публикация с камер работает, проблема воспроизводится только со скриншарингом. Проверяем, поможет ли обновление библиотеки WebRTC.
 

Max

Administrator
Staff member
Добрый день.
В сборке Android SDK 1.1.0.55 подняли targetSdk до 31, что привело к изменениям в инструкции по сборке при помощи Gradle Сборка примеров с помощью Gradle. Однако, проблема оказалась не в этом, а в том, что захват экрана на Android 10 и выше требует создания foreground service, поэтому внесли изменения в пример Android Screen sharing.
 
Top