2011-09-15 5 views
9

어떻게 든 Youtube HTML5 비디오는 약 일주일 전에 중단되었습니다. 나는 이유를 모른다. 여기에 지난 주 작업 한 코드입니다 (물론 아닌 실제 코드를하지만 작은 예를 들어 내가 만들 수) :Youtube HTML5 비디오가 Android에서 작동하지 않음

public class VideoTestActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     WebView webView = new WebView(this); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setPluginState(PluginState.OFF); 
     webView.setWebChromeClient(new TestWebChromeClient()); 

     setContentView(webView); 

     // Try with http://player.vimeo.com/video/24158845 and it works. 
     webView.loadUrl("http://www.youtube.com/embed/e2UIg3Ddfp0"); 
    } 

    private class TestWebChromeClient extends WebChromeClient { 
     @Override 
     public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) { 
      super.onShowCustomView(view, callback); 
      VideoTestActivity.this.setContentView(view); 
     } 
    } 
} 

이 내 전화 또는 에뮬레이터에서 작동하지 않습니다. 미친 부분은 Vimeo가 여전히 훌륭하게 작동한다는 것입니다. iPhone 사용자 에이전트를 설정하려고했지만 작동하지 않아 아이디어가 없습니다. 그것은 Youtube가 뭔가를 바꾼 것처럼 보입니다 ...

+3

어제 밤에 나는 운이 없다. .. 이상하다. 나는 기본 컨트롤로 얻을 수 있었지만 여전히 어딘가에 js 오류가있는 것 같다. –

+0

btw 위의 코드가 작동하고있는 것 같다. 지금. Google이 javascript 오류 – dparnas

+0

을 수정했다고 가정합니다. 예, 정확히 했으므로 다시 문제가되지 않습니다. –

답변

2

Youtube은 임베디드 페이지에서 무엇인가를 변경했을 가능성이 있으며 이는 아마도 WebView 내부에서 문제를 일으킬 가능성이 있으며 더 이상 작동하지 않는 이유 일 수 있습니다.

이전과 같은 기기에서 앱을 테스트하고 있습니까?

오늘 표시되는 콘텐츠가 Youtube에서 작동하며 작동하는 데 의존 할 수 없기 때문에이 솔루션을 사용하는 것이 좋지 않다고 생각합니다. 며칠 후에도 동일하게 적용됩니다. 당신이 지금 만난 것처럼. videosYoutube 콘텐츠에서도 비슷한 문제가 발생했는데 하나의 기기에서만 작동하고 다른 기기에서는 전혀 작동하지 않습니다. 또한 Flash 콘텐츠이며 많은 Android 기기에 Flash이 없으므로 콘텐츠를 재생할 수 없습니다.

해결책은 비디오 재생에 대한 Intent을 생성하는 것입니다 :

 Intent videoIntent=new Intent(Intent.ACTION_VIEW, 
            Uri.parse("http://www.youtube.com/my_url")); 
     startActivity(videoIntent); 

을하지만 내가 추천하는 것은 Supported Media Formats에 제안 Android에 대한 비디오를 인코딩하고 자신의 서버에 저장할 것입니다 당신이 경우 가능성이있다.

편집 : 거기에 js 오류가 있기 때문에 그들은 확실히 뭔가를 바 꾸었습니다.

TypeError: Result of expression 'a' [undefined] is not an object.line 78sourcehttp://www.youtube.com/embed/e2UIg3Ddfp0 

당신을 도움이된다면 내가 모르는 내가 나중에 다른 모양과 볼 수 있습니다 : 이것은 내가 가진 메시지 오류입니다

mWebView.setWebChromeClient(new WebChromeClient(){ 
     @Override 
     public void onConsoleMessage(String message, int lineNumber, 
       String sourceID) { 
      super.onConsoleMessage(message, lineNumber, sourceID); 
      Log.i("VIDEO VIEW",message); 
     } 
} 

: 당신은 WebChromeClient를 사용하여 그들을 추적 할 수 있습니다 내가 찾을 수있는 것.

+0

도움 주셔서 감사합니다. 나는 JS 오류를 듣는 것에 대해 결코 생각하지 않는다. 앱의 전체적인 요점은 주로 유튜브에서 비디오를 보는 것인데, 유튜브 측에서는 결코 해결되지 않으면 어쨌든 소스를 가로 채고 고치거나 의도를 사용해야 하는지를 알아봐야 할 것입니다. 인 텐트 솔루션은 사람들이 새로운 앱을 선택하고 브라우저와 유튜브 앱 중 하나를 선택할 수 있도록하기 때문에 조금 짜증이납니다. 그러나 이것이 유일한 옵션이라면 할 수있는 일이라고 생각합니다. –

관련 문제