RTSP прямой эфир на Android - PullRequest
8 голосов
/ 26 мая 2011

Я пытаюсь сделать прямой эфир на Android. Я пробовал много способов, но ни один из них работал. Как я могу это сделать?

Это пример RTSP:

mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(KralStream.getTvStreamUrl().toString());
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepareAsync();
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setLooping(true);

Исключение: 05-26 10: 22: 46.186:
ОШИБКА / MediaPlayerService (10157):
создать PVPlayer 05-26 10: 23: 06.382:
ОШИБКА / PlayerDriver (10157): команда
PLAYER_INIT завершен с ошибкой или
информация -1 05-26 10: 23: 06.382:
ОШИБКА / MediaPlayer (23800): ошибка (1,
-1) 05-26 10: 23: 06.382: ОШИБКА / MediaPlayer (23800): ошибка (1, -1)

RTSP:

VideoView videoView = (VideoView)findViewById(R.id.videoView1);
Uri uri = Uri.parse("rtsp://strm-3.tr.medianova.tv/rkraltv/rkraltv");
videoView.setVideoURI(uri);
videoView.start();

Это дает это сообщение:

"Извините, это видео
не могу играть. "Исключения; 05-26
10: 40: 08.979:
ОШИБКА / MediaPlayerService (10157):
создать PVPlayer 05-26 10: 40: 09.188:
INFO / ActivityManager (10163): отображается
Деятельность
com.giantrabbit.nagare / .KralTvNow: 433
мс (всего 433 мс) 05-26 10: 40: 11,702:
WARN / PowerManagerService (10163): таймер
0x3-> 0x3 | 0x1 05-26 10: 40: 29.061:
WARN / MediaPlayer (24284): информация / предупреждение
(1, 26) 05-26 10: 40: 29.061:
INFO / MediaPlayer (24284): информация (1,26)
05-26 10: 40: 29.100:
ОШИБКА / PlayerDriver (10157): команда
PLAYER_INIT завершен с ошибкой или
информация -1 05-26 10: 40: 29.104:
ОШИБКА / MediaPlayer (24284): ошибка (1,
-1) 05-26 10: 40: 29.108: ОШИБКА / MediaPlayer (24284): ошибка (1, -1)

RTSP:

mPreview = (SurfaceView) findViewById(R.id.surface);
holder = mPreview.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
extras = getIntent().getExtras();

public void play() {
    try {
        Uri video = KralStream.getTvStreamUrl();
        Toast.makeText(this, video.toString(), Toast.LENGTH_SHORT).show();
        mMediaPlayer = new MediaPlayer();
        mMediaPlayer.setDataSource(path);
        mMediaPlayer.setDisplay(holder);
        mMediaPlayer.prepare();
        mMediaPlayer.setOnBufferingUpdateListener(this);
        mMediaPlayer.setOnCompletionListener(this);
        mMediaPlayer.setOnPreparedListener(this);
        mMediaPlayer.setOnVideoSizeChangedListener(this);
        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    }
    catch (Exception e) {
        Log.e(TAG, "error: " + e.getMessage(), e);
    }
}

Exeption:

05-26 10: 36: 57,589:
ОШИБКА / MediaPlayerService (10157):
создать PVPlayer 05-26 10: 37: 20.542:
ОШИБКА / PlayerDriver (10157): команда
PLAYER_INIT завершен с ошибкой или
информация -1 05-26 10: 37: 20.542:
ОШИБКА / MediaPlayer (24240): ошибка (1,
-1) 05-26 10: 37: 20.565: WARN / PlayerDriver (10157):
PVMFInfoErrorHandlingComplete 05-26
10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): ошибка:
Подготовка не удалась .: статус = 0x1 05-26
10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240):
java.io.IOException: подготовиться не удалось.
статус = 0x1 05-26 10: 37: 20,682:
ОШИБКА / MediaPlayerDemo (24240): в
android.media.MediaPlayer.prepare (Родной
Метод) 05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
com.giantrabbit.nagare.KralTvNow.play (KralTvNow.java:162)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
com.giantrabbit.nagare.KralTvNow.surfaceCreated (KralTvNow.java:215)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.view.SurfaceView.updateWindow (SurfaceView.java:536)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.view.SurfaceView.dispatchDraw (SurfaceView.java:339)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.view.ViewGroup.drawChild (ViewGroup.java:1638)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.view.ViewGroup.dispatchDraw (ViewGroup.java:1367)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.view.ViewGroup.drawChild (ViewGroup.java:1638)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.view.ViewGroup.dispatchDraw (ViewGroup.java:1367)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.view.View.draw (View.java:6796)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.widget.FrameLayout.draw (FrameLayout.java:352)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.view.ViewGroup.drawChild (ViewGroup.java:1640)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.view.ViewGroup.dispatchDraw (ViewGroup.java:1367)
05-26 10: 37: 20.682:
ОШИБКА / MediaPlayerDemo (24240): в
android.view.View.draw (View.java:6796)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вandroid.widget.FrameLayout.draw (FrameLayout.java:352)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вcom.android.internal.policy.impl.PhoneWindow $ DecorView.draw (PhoneWindow.java:1894)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вandroid.view.ViewRoot.draw (ViewRoot.java:1407)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вandroid.view.ViewRoot.performTraversals (ViewRoot.java:1163)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вandroid.view.ViewRoot.handleMessage (ViewRoot.java:1727)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вandroid.os.Handler.dispatchMessage (Handler.java:99)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вandroid.os.Looper.loop (Looper.java:123)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вandroid.app.ActivityThread.main (ActivityThread.java:4627)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вjava.lang.reflect.Method.invokeNative (NativeМетод) 05-26 10: 37: 20,682:ОШИБКА / MediaPlayerDemo (24240): вjava.lang.reflect.Method.invoke (Method.java:521)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вcom.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:871)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вcom.android.internal.os.ZygoteInit.main (ZygoteInit.java:629)05-26 10: 37: 20.682:ОШИБКА / MediaPlayerDemo (24240): вdalvik.system.NativeStart.main (NativeМетод) 05-26 10: 37: 20,737:INFO / MediaPlayer (24240): информация (1,26)05-26 10: 37: 20.737:ОШИБКА / MediaPlayer (24240): ошибка (1, -1)05-26 10: 37: 20.868:INFO / ActivityManager (10163): отображаетсядеятельностьcom.giantrabbit.nagare / .KralTvNow:25864 мс (всего 25864 мс) 05-2610: 37: 23,777:WARN / PowerManagerService (10163): таймер0x3-> 0x3 | 0x1

Это пример HTTP:

mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource("http://ikral.garantisistem.com:1935/ikral/smil:kral.smil/playlist.m3u8");
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepareAsync();
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setLooping(true);

Исключение:

05-26 10: 16: 24.276:ОШИБКА / MediaPlayerService (10157):создать PVPlayer 05-26 10: 16: 24.292:ОШИБКА / (10157): IIIIIII ВнутриКонструкторPVMFMemoryBufferWriteDataStreamImpl05-26 10: 16: 24.346:INFO / PlayerDriver (10157): буферизация(100) 05-26 10: 16: 24.346:ОШИБКА / (10157): IIIIIII ВнутриКонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):IIIIIII Внутренний КонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):IIIIIII Внутренний КонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):IIIIIII Внутренний КонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):IIIIIII Внутренний КонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):IIIIIII Внутренний КонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):IIIIIII Внутренний КонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):IIIIIII Внутренний КонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):IIIIIII Внутренний КонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):IIIIIII Внутренний КонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):IIIIIII Внутренний КонструкторPVMFMemoryBufferReadDataStreamImpl05-26 10: 16: 24.346: ОШИБКА / (10157):
IIIIIII Внутренний Конструктор
PVMFMemoryBufferReadDataStreamImpl
05-26 10: 16: 24.350:
WARN / MediaPlayer (23736): информация / предупреждение
(1, 26) 05-26 10: 16: 24.354:
ОШИБКА / PlayerDriver (10157): команда
PLAYER_INIT завершен с ошибкой или
информация -10 05-26 10: 16: 24.354:
ОШИБКА / MediaPlayer (23736): ошибка (-10,
-10) 05-26 10: 16: 24.354: WARN / PlayerDriver (10157):
PVMFInfoErrorHandlingComplete 05-26
10: 16: 24.393: INFO / MediaPlayer (23736):
Информация (1,26) 05-26 10: 16: 24,393:
ОШИБКА / MediaPlayer (23736): ошибка
(-10, -10)

HTTP:

VideoView videoView = (VideoView)findViewById(R.id.videoView1);
Uri uri = Uri.parse("http://ikral.garantisistem.com:1935/ikral/smil:kral.smil/playlist.m3u8");
videoView.setVideoURI(uri);
videoView.start();

выдает сообщение:

"Извините, это видео невозможно воспроизвести."

enter image description here

Ответы [ 3 ]

3 голосов
/ 27 июля 2013

Пожалуйста, добавьте сетевое разрешение в свой файл AndroidManifest.xml, например:

<uses-permission android:name="android.permission.INTERNET" />

1 голос
/ 11 июня 2012

Android может обрабатывать потоки RTSP без какой-либо вспышки.Вы пытаетесь набрать URL в адресной строке браузера напрямую, и внешний проигрыватель автоматически откроется для воспроизведения URL.

Если выдает ошибку, вам нужно будет проверить формат видеоподдерживается Android.Вы можете проверить пример URL-адреса потока RTSP с Wowza Media Server .Обратитесь к URL-адресу для устранения неполадок потока RTSP с Wowza Media Server: http://www.wowza.com/forums/content.php?62-RTSP-streaming-troubleshooting-guide-%28RTSP-RTP-playback%29. Надеюсь, это поможет.

0 голосов
/ 02 декабря 2011

Это из-за формата видео. Попробуйте сделать это 3GP .

...