2016-06-30 1 views
1

J'ai une liste de vidéos sur mon application Android TV. Lorsque j'essaie de lire une vidéo, le lecteur YouTube est censé apparaître et jouer. Cependant, le joueur se bloque juste avant d'essayer de lire une vidéo. L'incident se produit si rapidement que je ne peux pas voir le lecteur en vue avant que l'application se bloque sur ma page vidéo principale.Pourquoi Android TV YouTube Player se ferme-t-il lorsque j'essaie de lire une vidéo dans mon application?

Quelqu'un peut-il me donner un aperçu de cela?

est ici à peu près le seul code simple je:

public class MainActivity extends Activity 
{ 
    private static final String VIDEO_ID = "fhWaJi1Hsfo"; 
    private static final String TAG = "MyActivity"; 

    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Intent intentStartYoutube = 
       YouTubeIntents.createPlayVideoIntent(getApplicationContext(), VIDEO_ID); 
     startActivity(intentStartYoutube); 
    } 

    .... 
} 

Pour votre information, le fichier manifeste contient déjà les autorisations <uses-permission android:name="android.permission.INTERNET" />.

MISE À JOUR Logcat:

FATAL EXCEPTION: main 
Process: com.example.vietmytv_androidtv, PID: 20663 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.vietmytv_androidtv/com.example.vietmytv_androidtv.ui.MainActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://www.youtube.com/watch?v=fhWaJi1Hsfo pkg=com.google.android.youtube (has extras) } 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
    at android.app.ActivityThread.access$800(ActivityThread.java:151) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5257) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:955) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750) 
Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://www.youtube.com/watch?v=fhWaJi1Hsfo pkg=com.google.android.youtube (has extras) } 
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1781) 
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501) 
    at android.app.Activity.startActivityForResult(Activity.java:3745) 
    at android.app.Activity.startActivityForResult(Activity.java:3706) 
    at android.app.Activity.startActivity(Activity.java:4016) 
    at android.app.Activity.startActivity(Activity.java:3984) 
    at com.ui.MainActivity.onCreate(MainActivity.java:54) 
    at android.app.Activity.performCreate(Activity.java:5990) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)  
    at android.app.ActivityThread.access$800(ActivityThread.java:151)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:135)  
    at android.app.ActivityThread.main(ActivityThread.java:5257)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at java.lang.reflect.Method.invoke(Method.java:372 

Je suivais ce tutoriel: http://android-coding.blogspot.com/2013/04/create-intent-to-specified-video-or.html

+0

et voyez-vous des journaux de plantage? –

+0

@Vlad, cela ne peut pas être testé sur un simulateur donc pas de journaux de panne – Pangu

+0

Et pourquoi il ne peut pas être? –

Répondre

3

YouTube sur les mobiles ne sont pas les mêmes que YouTube sur Android TV. En tant que tel, il essaie probablement d'ouvrir une application qui n'existe pas. Pouvez-vous poster un journal de plantage? Pour contourner ce problème, vous pouvez interagir avec l'application YT for ATV en utilisant une intention vous liant à l'URL YouTube. Lorsque vous commencez, YouTube affiche le lien et ouvre l'application sur la vidéo.

public void OpenYT() { 
    Intent youtube = new Intent(); 
    youtube.setAction(Intent.ACTION_VIEW); 
    youtube.setData(Uri.parse("http://youtube.com/watch?v=dQw4w9WgXcQ")); 
    getActivity().startActivity(youtube); 
} 
+0

Cela fonctionne, mais pourquoi le code que j'utilise crash? Je voudrais jouer la vidéo youtube au sein de ma propre application au lieu d'avoir à jouer sur YouTube ATV, est-ce possible? .... J'ai mis à jour le logcat. – Pangu

+0

Votre application tente d'accéder à l'application YouTube, mais cela n'existe pas. Android TV dispose d'une application "YouTube pour Android TV" distincte avec un nom de package différent. Vous pouvez utiliser une WebView intégrée et les API iFrame de YouTube pour lire des vidéos dans l'application. –

+0

@Pangu cocher [cette réponse] (https://stackoverflow.com/a/41744544/2614364) –