проблема воспроизведения YouTube видео с помощью веб-просмотра - PullRequest
0 голосов
/ 04 июня 2011

У меня есть этот код, который при запуске на эмуляторе печатает сообщение журнала, которое находится в методе shouldOverrideUrlLoading, когда я нажимаю на видео что-то вроде 06-04 08: 53: 24.295: VERBOSE / url (502): vnd.youtube:aEb80IUiLog?vndapp=youtube_mobile&vndclient=mv-google&vndel=profile

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

     import android.app.Activity;
     import android.content.ComponentName;
     import android.content.Intent;
     import android.net.Uri;
     import android.os.Bundle;
     import android.util.Log;
     import android.webkit.WebView;
     import android.webkit.WebViewClient;




    public class Test extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    try{

    WebView web=(WebView) findViewById(R.id.webkitWebView1);



//  web.getSettings().setBuiltInZoomControls(true);

    web.getSettings().setJavaScriptEnabled (true);
   //        web.getSettings().setJavaScriptCanOpenWindowsAutomatically (false);
   //        web.getSettings().setPluginsEnabled (true);
   //        web.getSettings().setSupportMultipleWindows (false);
   //        web.getSettings().setSupportZoom (false);
   //        web.setVerticalScrollBarEnabled (false);
   //        web.setHorizontalScrollBarEnabled (false);
   //        web.getSettings(). setAppCacheEnabled(true);
   //        web.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

    web.loadUrl("http://www.youtube.com/cg225");


    web.setWebViewClient(new WebViewClient()
    {
         @ Override
     public boolean shouldOverrideUrlLoading(WebView view, String url)
     {

         Log.v("url",url);
      // YouTube video link
      if (url.startsWith("vnd.youtube:"))
      {
       int n = url.indexOf("?");
       if (n > 0)
       {
        startActivity(new Intent(Intent.ACTION_VIEW,                 Uri.parse(String.format("http://www.youtube.com/v/%s", url.substring("vnd.youtube:".length(),n)))));
       }
       return (true);
      }

      return (false);
     }
    });

}catch(Exception e){
    e.printStackTrace();
    }
}

}

1 Ответ

2 голосов
/ 08 сентября 2011

я не знаю почему, но класс webviewclient вызывает проблему, мы можем запустить его в браузере по умолчанию удалите класс webviewclient и одновременно загрузите URL-адрес youtube, вы сможете запустить его на 2.2 для 2.1, просто используйте намерение и с помощью метода parse откройте его через приложение youtube

startActivity (new Intent (Intent.ACTION_VIEW, Uri.parse (String.format ("http://www.youtube.com/v/%s", url.substring (" vnd.youtube: "length (), n))))); }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...