Olá pessoal.
Estou tendo problemas para rodar um vídeo que não seja dessa pasta.
Tentei usar no método MediaPlayer.setDataSource(String video) a string assets/video, e também encapsular a pasta res/raw/video usando uma URI, pelo método MediaPlayer.setDataSource(Context context, Uri video), mas tudo que tentei deu erro.
Só consigo executar vídeos de pastas como sdcard/video ou data/local/tmp/video. Mas preciso criar um player de vídeo em que o vídeo esteja dentro do projeto, e não fora dele.
No projeto em que estou mexendo, preciso criar um player de vídeo em que, ao se clicar no vídeo, ele seja executado; quando clicado de novo, seja pausado; e assim por diante, até ele ser finalizado. Mas quando ele for finalizado, preciso prepará-lo para ser executado de novo, quando este for clicado.
Outra coisa que preciso fazer é que, quando o vídeo seja finalizado, ele não mostre o último frame do vídeo, mas sim o primeiro (que nada mais é do que aquela tela preta). Qual tela preta? Bem, quando você acaba de abrir uma Activity, a janela do vídeo está preta. É isso que quero que ocorra quando o vídeo for finalizado.
Por que estou usando a MediaPlayer, e não a VideoView? Porque de jeito nenhum consegui algum método da VideoView que fizesse o que quero.
Eu até consegui (usando VideoView) implementar o toque na tela do vídeo (clicando, executa; clicando de novo, pausa; clicando executa; assim por diante), e consegui deixar o vídeo com aquela tela preta. Mas quando eu clicava de novo, o vídeo nunca mais era executado. Logo, ele era executado apenas uma vez.
Eu depurei o método que tratava o clique, e caí na seguinte linha:
Mas bizarramente, ela era executada, e o vídeo, não.
Então decidi utilizar a classe MediaPlayer, que foi perfeita (infelizmente, com umas 5x mais linhas de código). Porém, novo bug: ela só executa vídeos das pastas que descrevi acima.
Alguém tem alguma dica de como devo proceder? Ou então de outra classe que realize manipulação de vídeos?