28

Вопрос по android – Потоковое видео 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, так и на эмуляторе (эмулятор имеет проблема с брандмауэром согласно списку рассылки) Вот сообщение об ошибке

ОШИБКА / PlayerDriver (35): команда PLAYER_INIT выполнена с ошибкой или информация PVMFFailure

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

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

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

Есть ли "Очистить"? способ сделать это?

Пожалуйста, поделись своими мыслями.

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

Dec 10, 2012, 6:09 AMот

Посмотрите также на<a href="http://stackoverflow.com/q/2068344/995926">How to get thumbnail of YouTube video link using YouTube API?</a> Существует умный ответ, который указывает, как получить URL-адрес RTSP: Попробуйте этот пример:<a href="http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&amp;prettyprint=true&amp;alt=json" rel="nofollow noreferrer">gdata.youtube.com/feeds/api/videos/&#x2026;</a>

Nov 22, 2012, 7:18 AMот

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

Aug 12, 2009, 3:45 AMот

Не могли бы вы объяснить немного больше? Я столкнулся с той же проблемой.

Apr 15, 2012, 5:17 PMот

8ответов

1

Брось взглядAPI YouTube

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

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

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
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
}
2

Иногда Uri.parse возвращает «null» потому что не могу разобрать протокол 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();
1

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

0

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

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

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

1

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

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

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

2

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

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

RelatedQuestions