He creado una aplicación donde puedes descargar videos de YouTube para Android. Ahora, lo quiero para que si reproduces un video en la aplicación nativa de YouTube, también puedas descargarlo. Para hacer esto, necesito saber la intención que la aplicación nativa de YouTube publica para reproducir la aplicación de YouTube.
Podría hacerlo fácilmente si tuviera el programa de YouTube en mi emulador, así que mi primera pregunta es:
1. ¿Puedo descargar la aplicación de YouTube para mi emulador, o ...
2. ¿Cuál es la intención utilizada cuando el usuario selecciona un video? para la reproducción
android
youtube
android-intent
emulation
Isaac Waller
fuente
fuente
Respuestas:
Y qué tal esto:
Nota: Tenga cuidado cuando use este método, YouTube puede suspender su canal debido a spam, esto sucedió dos veces conmigo
fuente
Esto funcionará en un dispositivo pero no en el emulador según la respuesta de Lemmy .
fuente
Así es como resolví este problema:
Ahora que he investigado un poco más, parece que solo necesitaba 'vnd.youtube:VIDEO_ID' en lugar de dos barras después de los dos puntos (':' vs. ': //'):
http://it-ride.blogspot.com/2010/04/android-youtube-intent.html
Intenté la mayoría de las sugerencias aquí y realmente no funcionaron muy bien con todos los supuestos métodos "directos" que generan excepciones. Supongo que, con mi método, si la aplicación de YouTube NO está instalada, el sistema operativo tiene una posición de respaldo predeterminada de algo más que bloquear la aplicación. La aplicación teóricamente solo funciona en dispositivos con la aplicación de YouTube de todos modos, por lo que esto no debería ser un problema.
fuente
Use mi código ... Puedo reproducir videos de YouTube usando este código ... solo necesita proporcionar la identificación del video de YouTube en la variable "videoId" ...
fuente
¿Dónde
videoId
está la identificación de video del video de YouTube que debe reproducirse? Este código funciona bien en Motorola Milestone .Pero básicamente, lo que podemos hacer es verificar qué actividad se carga cuando inicia la aplicación de Youtube y, en consecuencia, sustituir el packageName y el className.
fuente
ERROR/AndroidRuntime(1519): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.google.android.youtube/com.google.android.youtube.PlayerActivity}; have you declared this activity in your AndroidManifest.xml?
Resuelva amablemente esto.Se supone que Youtube (y la aplicación Market) solo deben usarse con ROM especiales, que Google lanzó para el G1 y el G2. Por lo tanto, no puede ejecutarlos en un OpenSource-ROM, como el que se usa en el emulador, desafortunadamente. Bueno, tal vez puedas, pero no de manera oficial.
fuente
EDITAR: La implementación a continuación demostró tener problemas en al menos algunos dispositivos HTC (se bloquearon). Por esa razón, no uso setclassname y me quedo con el menú de selección de acciones. Desaconsejo encarecidamente usar mi antigua implementación.
La siguiente es la implementación anterior:
Donde Utility es mi propia clase de utilidad personal con el siguiente método:
Primero verifico si YouTube está instalado, si está instalado, le digo a Android qué paquete prefiero abrir mi intención.
fuente
Lo encontré:
fuente
Respondiendo a la pregunta anterior, solo para informarles que el paquete ha cambiado, aquí está la actualización
Esto funciona muy bien, pero cuando llamas a Intención normal con ACTION_VIEW con un usuario válido de URL de YouTube, obtienes el selector de Actividad de todos modos.
fuente
La forma más segura de ejecutar videos en una aplicación diferente es primero intentar resolver el paquete, en otras palabras, verificar que la aplicación esté instalada en el dispositivo. Entonces, si quieres ver un video en YouTube, harías algo como esto:
fuente
Youtube ahora tiene una API de jugador, deberías probar eso.
https://developers.google.com/youtube/android/player/
fuente
fuente
También puedes agarrar el
WebViewClient
Funcionó bien en mi aplicación.
fuente
Prueba esto:
fuente
Esto funcionará si la aplicación de YouTube está instalada. De lo contrario, aparecerá un selector para seleccionar otra aplicación:
fuente
Prueba esto,
fuente
Esta función funciona bien para mí ... solo pasa la cadena url en la función:
fuente
Puede usar la API del reproductor Android de Youtube para reproducir el video si la aplicación Youtube está instalada; de lo contrario, solo solicite al usuario que elija entre los navegadores web disponibles.
fuente