2012-05-18 3 views
1

내 Android 앱에서 YouTube 동영상을 재생하려고하는데 3gp URL에 도달 할 수 없어 Youtube API에서 나를 반환했습니다. VLC 플레이어와 QuickTime 플레이어에서도 열려고했지만 응답은 항상 플레이어가 데이터를받을 수 없다는 것입니다. 다음은 VLC 플레이어 로그입니다 :Android - Youtube 3gp 파일을 찾을 수 없음

main debug: rtsp://v5.cache2.c.youtube.com/CiILENy73wIaGQmyk7Qe6Z5HyRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp' successfully opened live555 warning: no data received in 10s. Switching to TCP avcodec debug: ffmpeg codec (H263) stopped main debug: removing module "avcodec" main debug: killing decoder fourcc h263', 0 PES in FIFO avcodec debug: ffmpeg codec (AMR narrow band) stopped main debug: removing module "avcodec" main debug: killing decoder fourcc samr', 0 PES in FIFO main debug: Program doesn't contain anymore ES live555 debug: RTP subsession 'video/H263-2000' main debug: looking for decoder module: 32 candidates avcodec debug: libavcodec already initialized avcodec debug: trying to use direct rendering avcodec debug: ffmpeg codec (H263) started main debug: using decoder module "avcodec" main debug: TIMER module_need() : 0.758 ms - Total 0.758 ms/1 intvls (Avg 0.758 ms) main debug: thread (decoder) created at priority 0 (../../src/input/decoder.c:301) main debug: thread started live555 debug: RTP subsession 'audio/AMR' main debug: looking for decoder module: 32 candidates avcodec debug: libavcodec already initialized avcodec debug: ffmpeg codec (AMR narrow band) started avcodec debug: Using 192000 bytes output buffer main debug: using decoder module "avcodec" main debug: TIMER module_need() : 391.931 ms - Total 391.931 ms/1 intvls (Avg 391.931 ms) main debug: thread (decoder) created at priority 22 (../../src/input/decoder.c:301) main debug: thread started live555 debug: setup start: 0.000000 stop:28.666000 live555 debug: play start: 0.000000 stop:28.666000 live555 error: no data received in 10s, aborting main debug: EOF reached main debug: finished input avcodec debug: ffmpeg codec (H263) stopped main debug: removing module "avcodec" main debug: killing decoder fourcc h263', 0 PES in FIFO avcodec debug: ffmpeg codec (AMR narrow band) stopped main debug: removing module "avcodec" main debug: killing decoder fourcc `samr', 0 PES in FIFO main debug: removing module "live555" main debug: Program doesn't contain anymore ES main debug: thread ended main debug: dead input main debug: changing item without a request (current 0/1) main debug: nothing to play macosx debug: input has stopped, refreshing interface main debug: TIMER input launching for 'rtsp://v5.cache2.c.youtube.com/CiILENy73wIaGQmyk7Qe6Z5HyRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp' : 449.262 ms - Total 449.262 ms/1 intvls (Avg 449.262 ms)

그리고 이것은 안드로이드 로그입니다 :

05-18 14:51:42.008: D/MediaPlayer(2152): Couldn't open file on client side, trying server side 05-18 14:51:42.258: D/MediaPlayer(2152): getMetadata 05-18 14:51:53.823: E/MediaPlayer(2152): error (1, -2147483648) 05-18 14:51:53.823: E/MediaPlayer(2152): Error (1,-2147483648) 05-18 14:51:53.823: D/VideoView(2152): Error: 1,-2147483648 05-18 14:51:54.060: D/AndroidRuntime(2152): Shutting down VM 05-18 14:51:54.060: W/dalvikvm(2152): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 05-18 14:51:54.088: E/AndroidRuntime(2152): FATAL EXCEPTION: main 05-18 14:51:54.088: E/AndroidRuntime(2152): android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.view.ViewRootImpl.setView(ViewRootImpl.java:513) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:301) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.view.Window$LocalWindowManager.addView(Window.java:537) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.app.Dialog.show(Dialog.java:278) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.app.AlertDialog$Builder.show(AlertDialog.java:932) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.widget.VideoView$4.onError(VideoView.java:382) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:1553) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.os.Handler.dispatchMessage(Handler.java:99) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.os.Looper.loop(Looper.java:137) 05-18 14:51:54.088: E/AndroidRuntime(2152): at android.app.ActivityThread.main(ActivityThread.java:4424) 05-18 14:51:54.088: E/AndroidRuntime(2152): at java.lang.reflect.Method.invokeNative(Native Method) 05-18 14:51:54.088: E/AndroidRuntime(2152): at java.lang.reflect.Method.invoke(Method.java:511) 05-18 14:51:54.088: E/AndroidRuntime(2152): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 05-18 14:51:54.088: E/AndroidRuntime(2152): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-18 14:51:54.088: E/AndroidRuntime(2152): at dalvik.system.NativeStart.main(Native Method)

그리고 비디오를 재생하는 내 VideoActivity 클래스 :

이해하기 위해 노력하고있어


    public class VideoActivity extends Activity{ 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.video); 

      VideoView videoView = new VideoView(this); 
      String urlRtsp = "rtsp://v5.cache2.c.youtube.com/CiILENy73wIaGQmyk7Qe6Z5HyRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp"; 
      videoView.setVideoURI(Uri.parse(urlRtsp)); 
      videoView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)); 

      videoView.setMediaController(new MediaController(this)); 
      videoView.requestFocus(); 
      videoView.start(); 
      LinearLayout main = (LinearLayout) findViewById(R.id.video_layout); 
      main.addView(videoView);   
     } 


    } 

 

Youtube 문제이거나 내 코드에 문제가있는 경우입니다. 많은 동영상을 시도했지만 코드의 내용은 마지막 시도입니다. 저는 Android SDK 버전 15를 사용하고 있습니다.

+0

youtube 비디오를 Android 비디오보기로로드 할 수 없습니다. 하지만 webview를 사용할 수 있습니다. 해당 비디오 URL의 소스 코드를로드하십시오. – Aerrow

+0

링크가 VLC의 데스크톱 버전에서도 재생되지 않습니다. 당신은 [android-youtube-player] (http://code.google.com/p/android-youtube-player/)에서 Youtube 비디오를 재생하는 활동을 볼 수 있으며 이것은 오픈 소스입니다. – Rajesh

+0

@Aerrow : 왜 내가 할 수 없습니까? 이것에 대한 다른 자습서를 따르는 코드가 있습니다. 어쨌든, 나는 또한 Youtube embed 코드로 WebView를 사용하려했지만 그 결과는 빈 흰색 또는 검은 색 사각형이었습니다 (왜 항상 흰색이 아니 었는지 또는 항상 검은 색인지는 알 수 없습니다). – dany84

답변

0

이 제안을 사용하여 OP로 답변을 게시하면 비슷한 해결책을 찾는 다른 사용자에게 도움이 될 수 있습니다.

VideoView에서 YouTube 동영상을 재생할 수있는 오픈 소스 프로젝트이며 android-youtube-player입니다. 구성 요소를 테스트 할 수 있도록 샘플 Activity도 제공됩니다.

관련 문제