Использование метода
Импортируйте «com.pince.maven:lib-lifecycleLiveTXAV:1.1.6» для использования плеера.
Для потоковой передачи либо наследуйте, либо используйте упакованный потоковый передатчик.
<com.pince.lifcycleliveav.pushplayer.LifecycleTXPusher
android:id="@+id/pusher"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible" />
Используйте startPush для потоковой передачи и startPreView для предварительного просмотра. Однако если вы используете сторонние сборщики, такие как Shanda или другие, не используйте этот метод, а переходите непосредственно к потоку.
override fun sendCustomVideoData(data: ByteArray, w: Int, h: Int): Int {
return mLivePusher.sendCustomVideoData(data, RGB_RGBA, w, h)
}
Или
return mLivePusher.sendCustomVideoTexture(data, w, h)
}
android:id="@+id/livePlayer"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Установите режим воспроизведения.
livePlayer?.playAutoAdjust = PlayAutoAdjust.AutoMDOEL //устанавливаем режим воспроизведения, по умолчанию это режим быстрой скорости
livePlayer?.setTXLivePlayConfig(false) //устанавливаем конфигурацию проигрывателя, перед началом воспроизведения
livePlayer?.startPlay(playUrl) //проигрыватель начинает воспроизведение соединения
livePlayer?.setRenderMode(TXLiveConstants.RENDER_MODE_FULL_FILL_SCREEN)
livePlayer?.addController(object : IPullPlayController {
override fun attachPlayer(livePlayer: ILivePlayer) {
}
override fun onNetStatus(bundle: Bundle) {
Log.e("TAG", "" + bundle.toString())
log.text = bundle.toString()
.replace("CPU_USAGE", "\nтекущее мгновенное использование ЦП:")
.replace("VIDEO_WIDTH", "\nразрешение видео - ширина:")
.replace("VIDEO_HEIGHT", "\nразрешение видео - высота:")
.replace("NET_SPEED", "\nтекущая скорость загрузки сети:")
.replace("VIDEO_FPS", "\nтекущий FPS видеопотока:")
.replace("VIDEO_BITRATE", "\nтекущий битрейт видеопотока, единица измерения: kbps:")
.replace("AUDIO_BITRATE", "\nтекущий аудиопоток битрейт, единица измерения: kbps:")
.replace("VIDEO_CACHE", "\nразмер буфера воспроизведения видео (jitterbuffer), чем меньше буфер, тем сложнее избежать дрожания:")
.replace("AUDIO_CACHE", "\nразмер аудиобуфера (jitterbuffer), чем меньше буфер, тем сложнее избежать дрожания:")
.replace("SERVER_IP", "\nIP текущего подключенного сервера:")
}
override fun onPlayEvent(event: Int, param: Bundle?) {
log.text = event.toString() + param?.toString()
}
})
Обновление журнала за 20200709
При добавлении TXPushPlayerExt для потоковой передачи получите статус потоковой передачи.
Измените предварительный просмотр, поддержите предварительный просмотр камеры Tencent с помощью startPreView(true). Используйте пользовательский экран сбора для предварительного просмотра и потоковой передачи с помощью startPreView(false).
Добавьте setVideoQuality() для динамической настройки качества потокового изображения.
enum class VideoQualityType {
/**
* Стандартное разрешение
*/
SD,
/**
* Высокое разрешение
*/
HD,
/**
* Сверхвысокое разрешение
*/
FHD,
/**
* Большой экран для включения микрофона
*/
LINKMACMAIN,
/**
* Маленький экран для включения микрофона
*/
LINKMACSUB
}
Исправьте создание GLSurfaceView без установки Renderer, что может привести к сбою указателя.
LiteAVSDK_Professional_7.4.9211
Обновление журнала за 20200716
Обновление за 20201230
Измените освобождение представления проигрывателя, чтобы решить проблему, когда проигрыватель сохраняет последний кадр предыдущего видео.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )