Android dev: Как показать фильм на Youtube? - PullRequest
0 голосов
/ 11 августа 2011

Я портировал свое приложение на Android, используя NDK и cocos2dx.Все работает отлично, за исключением того, что мне нужно показать фильм на Youtube (трейлер к моей игре).Мне все равно, если это делается из встроенного веб-просмотра - или из автономного браузера.Я работал с этим весь день и не смог :(. Я новичок в android dev, и поэтому мог бы сделать это глупо - поправьте меня.

Решение 1) Я пыталсядобавить веб-представление (с URL-адресом YouTube) в мой OpenGl View, но это никогда не показывается.При замене веб-просмотра на TextView Текст отображается корректно поверх моего представления OpenGl.Моя реализация показана ниже:

   String packageName = getApplication().getPackageName();
    super.setPackageName(packageName);

    RelativeLayout base = new RelativeLayout(this);
    FrameLayout frame = new FrameLayout(this);    

     mGLView = new Cocos2dxGLSurfaceView(this);

     WebView testView = new WebView(this);
     testView.loadUrl("http://www.google.dk/"); // THIS NEVER SHOW !!

     LinearLayout testLayout = new LinearLayout(this);

     RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
     lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
     testLayout.addView(testView ,lp);

    frame.addView(mGLView);
    frame.addView(testLayout);
    base.addView(frame);
    setContentView(base);

Решение 2) Затем я попытался запустить автономный браузер, выполнив следующее:

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

Это прекрасно работает, если это было сделано до моего OpenGlСцена запущена и работает.Если я запускаю его, когда запущена сцена Opengl, моя игра вылетает со следующей информацией:

08-10 17: 48: 38.972: WARN / dalvikvm (11576): threadid = 11: поток, выходящий без исключения(группа = 0x40015560) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: GLThread 10 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): java.lang.NullPointerException 08-1017: 48: 38.996: ОШИБКА / AndroidRuntime (11576): на android.app.Activity.startActivityForResult (Activity.java:2827) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): на android.app.Activity.startActivity (Activity.java:2933) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): at org.cocos2dx.lib.PigsInTreesJavaCppComunication.pitTestJNI (PigsInTreesJavaCppComunication.java:54: 38.99 17: 09.99: 10: ОШИБКА / AndroidRuntime (11576): по адресу org.cocos2dx.lib.Cocos2dxActivity.pitTestJNI (Cocos2dxActivity.java:174) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): по адресу org.cocos2dos.doc.nativeTouchesEnd (Native Method) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): в org.cocos2dx.lib.Cocos2dxRenderer.handleActionUp (Cocos2dxRenderer.java:49) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): в илиcocos2dx.lib.Cocos2dxGLSurfaceView $ 9.run (Cocos2dxGLSurfaceView.java:288) 08-10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): в android.opengl.GLSurfaceView $ GLThread.guardedRun (GLSurface6) 08.06.10 17: 48: 38.996: ОШИБКА / AndroidRuntime (11576): на android.opengl.GLSurfaceView $ GLThread.run (GLSurfaceView.java:1118) 08-10 17: 48: 39.019: WARN / ActivityManager (109): Принудительное завершение операцииdk.tactile.pigsInTrees / .pigsInTreesB 08-10 17: 48: 39.027: INFO / TAG: onPause

Я действительно не знаю, что здесь делать :( Пожалуйста, помогите мне.Привет

1 Ответ

0 голосов
/ 12 августа 2011

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

videoGalery.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub

                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(//your url goes here));
             }
           });

Надеюсь, это поможет.

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