Прямая трансляция видео на Android 3.0+ (HLS и RTSP / RTP) - PullRequest
2 голосов
/ 20 января 2012

Мне нужна помощь для начала работы с HLS и RTSP на Android.

Для тестирования RTSP у меня работает медиасервер LIVE555.На сервере есть файл примера и индексный файл bipbop-gear1-all.ts, загруженный с live555.com.Так что мой URL-адрес просто http://(myIP):80/bipbop-gear1-all.ts В эмуляторе Android 3.0 браузер показывает прогресс загрузки в течение пары минут, а затем ничего.Нет обновлений в окне браузера, нет уведомлений о загрузке Android.Он просто останавливается.
На устройстве Android 3.2.1 он запускает видеопроигрыватель, но сразу отображает Cannot play video, Sorry, this video cannot be played. в простом тестовом приложении (загруженном из системы отслеживания проблем Android для проблемы 17118: Android 3.1 можетне воспроизводить HTTP Live Streaming), MediaPlayer.prepare () кратковременно попадает на сервер и немедленно выдает IOException с сообщением Prepare failed.: status=0x1.Logcat также показывает, error (1, -2147483648).

Это же тестовое приложение воспроизводит локальный mp4 без проблем, поэтому я считаю, что это хорошо.На iPad тот же URL воспроизводит видео, подтверждая, по крайней мере, мой сервер в порядке.

Для тестирования HTTP Live Streaming (HLS) я использую пример бип-бопа, который подается на apple.com: http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8 httplive: //devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8

В эмуляторе Android 3 пример приложения начинает воспроизводить адрес с помощью «httplive»протокол, но зависает.С протоколом "http" после MediaPlayer.start () он на мгновение зависает, но ничего не отображается.Затем logcat показывает:

W/AudioSystem(715): AudioFlinger server died!
W/IMediaDeathNotifier(715): media server died
E/MediaPlayer(715): error (100, 0)
E/MediaPlayer(715): Error (100,0)

и вызывается мой обработчик onCompletion ().

На реальном устройстве 3.2.1 приложение, использующее протокол http, ведет себя так же, как и на3.0 эмулятор.httplive выдает IOException при подготовке с сообщением, Prepare failed.: status=0x1.

. В браузере на эмуляторе 3.0, адрес http вызывает аудиопроигрыватель, который останавливается, а затем отображает всплывающее сообщение со словами Sorry, the player does not support this type of audio file,Адрес httplive просто идет в поиск Google.

В браузере на реальном устройстве 3.2.1 адрес http вызывает диалоговое окно Complete action using с вариантами выбора: Music и Video player,Нажав Video player, я получаю, Cannot play video, Sorry, this video cannot be played.Нажав Music, я получаю Couldn't play the track you requested..Опять же, этот адрес хорошо работает на iPad.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2012

Предполагается, что RTSP поддерживается на Android, но, похоже, он не работает, мне недавно пришлось проигрывать потоки RTSP, и в итоге я написал свой собственный плеер, используя ffmpeg.Есть пара хороших проектов, которые вы можете попробовать.Дельфин один.

0 голосов
/ 27 января 2012

Не могу помочь вам с протоколом RTSP.

Для HLS мне удалось получить образец видео с веб-сайта Apple, работающего с простым приложением, созданным для версий 2.3.4 и 3.0.

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mMediaController = new MediaController(this);
    mVideoView = (VideoView)findViewById(R.id.video_view);
    mVideoView.setVideoPath(mVideoPath);
    mVideoView.setMediaController(mMediaController);
    mVideoView.setOnPreparedListener(new OnPreparedListener() {

        @Override
        public void onPrepared(MediaPlayer mp) {
            // TODO Auto-generated method stub
            mp.start();
        }
    });
}
...