Подтвердить что ты не робот

Потоковое видео Youtube

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

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

Я получаю URL-адрес RTSP для видео с использованием API-интерфейсов GData. Вот код для воспроизведения 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, так и на эмуляторе (у эмулятора есть некоторые проблема брандмауэра согласно списку рассылки) Вот сообщение об ошибке

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

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

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

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

Существует ли "чистый" способ сделать это?

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

4b9b3361

Ответ 1

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

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

Ответ 2

Иногда Uri.parse возвращает "null", потому что can not анализирует протокол rtsp вместо http-протокола.

Посмотрите его с Log logat 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();

Ответ 3

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

Ответ 4

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

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

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

Ответ 5

Бросьте взгляд на Youtube API

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

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

Ответ 6

Я показывал видео 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
}

Ответ 7

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

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

Я отлично работаю на планшетах Nexus и Samsung.

Ответ 8

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

 <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