Eu criei um aplicativo onde você pode baixar vídeos do YouTube para Android. Agora, quero que, se você reproduzir um vídeo no aplicativo nativo do YouTube, também possa fazer o download. Para fazer isso, preciso saber a Intenção que o aplicativo nativo do YouTube divulga para reproduzir o aplicativo do YouTube.
Eu poderia fazer isso facilmente se tivesse o programa do YouTube no meu emulador, então minha primeira pergunta é:
1. Posso baixar o aplicativo do YouTube para o meu emulador ou ...
2. Qual é a intenção usada quando o usuário seleciona um vídeo para reprodução.
android
youtube
android-intent
emulation
Isaac Waller
fonte
fonte
Respostas:
E quanto a isso:
Nota: cuidado ao usar esse método, o YouTube pode suspender seu canal devido a spam, isso aconteceu duas vezes comigo
fonte
Isso funcionará em um dispositivo, mas não no emulador de acordo com a resposta de Lemmy .
fonte
Aqui está como eu resolvi esse problema:
Agora que fiz mais pesquisas, parece que eu só precisava de 'vnd.youtube:VIDEO_ID' em vez de duas barras após os dois pontos (':' vs. ': //'):
http://it-ride.blogspot.com/2010/04/android-youtube-intent.html
Tentei a maioria das sugestões aqui e elas realmente não funcionaram muito bem com todos os supostos métodos "diretos" gerando exceções. Suponho que, com meu método, se o aplicativo do YouTube NÃO estiver instalado, o sistema operacional terá uma posição de fallback padrão de algo diferente de travar o aplicativo. Teoricamente, o aplicativo só funciona em dispositivos com o aplicativo do YouTube, então isso não deve ser um problema.
fonte
Use meu código .. Eu posso reproduzir vídeo do youtube usando esse código ... você só precisa fornecer o ID do vídeo do youtube na variável "videoId" ....
fonte
Onde
videoId
está o ID do vídeo do youtube que deve ser reproduzido. Esse código funciona bem no Motorola Milestone .Mas basicamente o que podemos fazer é verificar qual atividade é carregada quando você inicia o aplicativo do Youtube e, portanto, substitui o packageName e o className.
fonte
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?
Por favor, resolva isso.O YouTube (e o aplicativo Market) devem ser usados apenas com ROMs especiais, lançadas pelo Google para o G1 e o G2. Portanto, você não pode executá-los em um OpenSource-ROM, como o usado no emulador, infelizmente. Bem, talvez você possa, mas não de uma maneira oficialmente suportada.
fonte
EDIT: A implementação abaixo provou ter problemas em pelo menos alguns dispositivos HTC (eles travaram). Por esse motivo, não uso o setclassname e fico com o menu do seletor de ações. Eu desencorajo fortemente usar minha antiga implementação.
A seguir está a implementação antiga:
Onde Utility é minha própria classe de utilitário pessoal com o seguinte método:
Primeiro, verifico se o youtube está instalado, se estiver instalado, digo ao android qual pacote eu prefiro abrir minha intenção.
fonte
Encontrei:
fonte
Respondendo à pergunta antiga, apenas para informar a vocês que o pacote mudou, veja a atualização
Isso funciona muito bem, mas quando você chama Intent normal com ACTION_VIEW com URL válido, o usuário do YouTube obtém o seletor de atividades de qualquer maneira.
fonte
A maneira mais segura de executar vídeos em um aplicativo diferente é tentar primeiro resolver o pacote, ou seja, verificar se o aplicativo está instalado no dispositivo. Então, se você quiser rodar um vídeo no youtube, faça algo assim:
fonte
O YouTube agora possui uma API de jogador. Você deve tentar isso.
https://developers.google.com/youtube/android/player/
fonte
fonte
Você também pode simplesmente pegar o
WebViewClient
Funcionou bem no meu aplicativo.
fonte
Tente o seguinte:
fonte
Isso funcionará se o aplicativo do youtube estiver instalado. Caso contrário, um seletor aparecerá para selecionar outro aplicativo:
fonte
Tente isso,
fonte
Essa função funciona bem para mim ... basta passar a string de URL na função:
fonte
Você pode usar a API do player Android do YouTube para reproduzir o vídeo se o aplicativo do Youtube estiver instalado; caso contrário, peça ao usuário para escolher entre os navegadores da web disponíveis.
fonte