Rodar vídeo com a classe MediaPlayer (de uma pasta que não seja a sdcard) [RESOLVIDO]

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?

Olá pessoal!

Consegui resolver meu problema.

Para setar o Uri à ser colocado no método MediaPlayer.setDataSource, preciso setá-lo obrigatoriamente dentro do método onCreate que inicializa o player. Era isso.

Mudarei esse tópico para [RESOLVIDO].