Exoplayer, неизвестный источник, Android JavaJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Exoplayer, неизвестный источник, Android Java

Сообщение Гость »


Я интегрировал код из этого репозитория в свое приложение: https://github.com/kardelencanoglu/ExoPlayerRTSP И я могу видеть компиляцию и проигрыватель в своем приложении для Android в эмуляторе.

На моем локальном компьютере я таким образом генерирую поток rtsp, который можно восстановить из VLC:

/Applications/VLC.app/Contents/MacOS/VLC -I dummy blabla.mp4 --sout '#rtp{sdp=rtsp://0.0.0.0:8082/live}' --no- sout-all --sout-keep

в моем приложении build.gradle:

реализация 'com.google.android.exoplayer:exoplayer:2.19.1' Включено:
импортировать com.google.android.exoplayer2.MediaItem; импортировать com.google.android.exoplayer2.SimpleExoPlayer; импортировать com.google.android.exoplayer2.source.MediaSource; импортировать com.google.android.exoplayer2.source.ProgressiveMediaSource; импортировать com.google.android.exoplayer2.ui.PlayerView; импортировать com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
В моей основной деятельности я:

частный проигрыватель SimpleExoPlayer; частный PlayerView playerView; ....

playerView = findViewById(R.id.player_view);

попробуй { // Переопределение rtspStreamUrl в целях тестирования rtspStreamUrl = "rtsp://10.0.2.2:8082/live"; Uri videoUri = Uri.parse(rtspStreamUrl); игрок = новый SimpleExoPlayer.Builder(this).build(); playerView.setPlayer(игрок); MediaSource mediaSource = новый ProgressiveMediaSource.Factory(новый DefaultDataSourceFactory(this, "exoplayer-codelab")).createMediaSource(MediaItem.fromUri(videoUri)); player.prepare(mediaSource); player.setPlayWhenReady(истина); playerView.bringToFront(); } поймать (Исключение е) { Log.e("Невозможно запустить EXO player",""); } Я получаю следующую ошибку в logcat:

Ошибка воспроизведения c*om.google.android.exoplayer2.ExoPlaybackException: ошибка источника в com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException (ExoPlayerImplInternal.java:684) на com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:656) в android.os.Handler.dispatchMessage(Handler.java:102) в android.os.Looper.loopOnce(Looper.java:205) в android.os.Looper.loop(Looper.java:294) в android.os.HandlerThread.run(HandlerThread.java:67) Вызвано: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.MalformedURLException: неизвестный протокол: rtsp по адресу com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:388) по адресу com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:269) на com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:90) по адресу com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1013) по адресу com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:420) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) в java.lang.Thread.run(Thread.java:1012) Вызвано: java.net.MalformedURLException: неизвестный протокол: rtsp по адресу java.net.URL.(URL.java:608) по адресу java.net.URL.(URL.java:498) по адресу java.net.URL.(URL.java:447) в com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:530) по адресу com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:382) по адресу com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:269) на com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:90) по адресу com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1013) по адресу com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:420) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) на java.lang.Thread.run(Thread.java:1012) *

Будем признательны за любую идею, заранее спасибо!

Я пытался получить поток в VLC, все работает нормально, но не в эмуляторе.

РЕДАКТИРОВАТЬ: проблема изменится, если я это сделаю:

import com.google.android.exoplayer2.source.rtsp.RtspMediaSource; и вместо Progressive я использую:

MediaSource mediaSource = новый RtspMediaSource.Factory().createMediaSource(MediaItem.fromUri(rtspStreamUrl)); тогда я получаю: Ошибка воспроизведения com.google.android.exoplayer2.ExoPlaybackException: Ошибка источника в com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException (ExoPlayerImplInternal.java:684) на com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:660) в android.os.Handler.dispatchMessage(Handler.java:102) в android.os.Looper.loopOnce(Looper.java:205) в android.os.Looper.loop(Looper.java:294) в android.os.HandlerThread.run(HandlerThread.java:67) Вызвано: com.google.android.exoplayer2.source.rtsp.RtspMediaSource$RtspPlaybackException: SETUP 461
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»