2009-06-17 12 views
28

Я пишу приложение для воспроизведения видео с YouTube с помощью потоковой передачи.Потоковое видео Youtube

Первый метод:

Я получаю URL RTSP для видео с помощью GData API. Вот код для воспроизведения URL-адреса RTSP.

VideoView mVideoView = new VideoView(this); 
    setContentView(mVideoView); 
    mVideoView.setVideoURI(Uri.parse("rtsp://rtsp2.youtube.com/CiILENy73wIaGQkDwpjrUxOWQBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp")); 
    mVideoView.start(); 

Но он выдает ошибку на обоих G1 устройства и эмулятора (Emulator имеет некоторые проблемы брандмауэра согласно списку рассылки) Вот сообщение об ошибке

ERROR/PlayerDriver (35): Команда PLAYER_INIT завершается ошибка или Информация PVMFFailure

Второй метод:

хак способ получить путь 3gp файл из http://www.youtube.com/get_video?v= & t = <> & <> После получения пути к файлу, и я могу вызвать setVideoURI, и он играет в порядке. Но это способ взломать это требование. Я проверил Youtube App также, он также делает халтуру способ играть в URL YouTube. (Проверено с LogCat)

Я попытался изменить от VideoView к MediaPlayer, но без изменения ошибки.

Есть ли «чистый» способ сделать это?

Пожалуйста, дайте мне знать ваши мысли.

+1

Не могли бы Вы объяснить взломать немного больше? У меня такая же проблема. – Janusz

+0

Не можете ли вы просто запустить проигрыватель YouTube для воспроизведения видео? (похоже на то, как работает приложение iPhone YouTube?) – Geoff

+0

Посмотрите также на [Как получить снимок видеороликов YouTube с помощью API YouTube?] (http://stackoverflow.com/q/2068344/995926). Существует умный ответ, который указывает, как получить URL-адрес rtsp: попробуйте это в качестве примера: http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&prettyprint=true&alt=json – rekire

ответ

1

Я впечатлен тем, что грязный способ работает вообще! Если у вас есть рабочее решение, пойдите с ним. Я не думаю, что есть чистый способ получить поток RTSP, работающий в SDK.

2

Если вы готовы сделать работу в новой деятельности, следующий будет работать на устройстве, но не на эмуляторе:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));

+3

Это работает на устройстве, потому что у него установлено приложение YouTube. Я не хочу, чтобы мое приложение зависело от приложения Youtube – Vinay

+0

, есть ли другой способ воспроизведения видео на YouTube без приложения YouTube или устройства, не поддерживающего flash и html5. –

2

Иногда Uri.parse возвращения «нуль», потому что косяк проанализируйте протокол rtsp вместо протокола http.

Посмотрите его с помощью logcat Uri.parse(rtspURL).toString(), и вы ничего не увидите. или только сделать Log.d("tag", Uri.parse); и то же самое будет возвращено.

Попробуйте найти другой способ разбора (создания) Uri.

Я хотел бы попробовать с этим и работать:

String urlVideo = <your rtspURL> 
VideoView video = (VideoView)findViewById(R.id.VideoView01); 
Log.d(tag , urlVideo); 
video.setVideoURI(Uri.parse(urlVideo)); 
MediaController mc = new MediaController(this); 
video.setMediaController(mc); 
video.requestFocus(); 
video.start(); 
mc.show(); 
+0

Я довольно новичок в потоковой передаче видео на Android. Не могли бы вы объяснить объяснение? – JohnK

0

Я отображается видео на YouTube с помощью следующего кода. Я надеюсь, что это полезно, но дайте мне знать, как это можно улучшить.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    startActivity(new Intent(Intent.ACTION_VIEW, 
        Uri.parse("http://www.youtube.com/watch?v=..."))); 
} 

public void onPrepared(MediaPlayer mp) { 
    // TODO Auto-generated method stub 
} 
+1

ваш код загрузит страницу, а не видео на сервере. – IronBlossom

+0

Этот код запустит проигрыватель по умолчанию, который не является обязательным требованием –

1

Мы столкнулись с очень похожими проблемами.

На данный момент я на первом этапе своего проекта, и я пытаюсь сделать видеообзор просто работающим. Я беру данные отсюда: http://gdata.youtube.com/demo/, и я тестирую все ссылки на видео.

RTSP 3GP видео действительно действительно видео низкого качества .... и нет доступа к видео mp4 (хорошего качества). Я действительно не знаю, как сделать это работает, потому что я думаю, что MP4 потоки доступны только для премиум-дэвов ....

1

Throw глаз над Youtube API

Я думаю, что это также использовать Приложение YouTube (который вы дон «т хочет)

Но только смотрите, может быть, вы найдете некоторый ключ, чтобы решить эту проблему

0

заголовок на видео показывает, что делает работу для Android. Итак, попробуйте хорошую видеосвязь для экспериментов. Вот что я использую:

RTSP: //184.72.239.149/vod/mp4: BigBuckBunny_115k.mov

Я отлично работает на Nexus и Samsung таблетки.

0

У вас есть доступ в интернет? если нет, пожалуйста, добавьте разрешение Интернет в файл манифеста

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

, а также, пожалуйста, попробуйте эти идентификаторы URI:

rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov 

http://www.wowza.com/_h264/BigBuckBunny_175k.mov