Vamos lá, vasculhando o livro do Ricardo Lecheta, eu descobri a classe MediaPlayer responsável por reproduzir audio e video.
Como sou iniciante, e quero dar um passo de cada vez, decidi primeiro aprender a executar o vídeo ao iniciar o player.
Mas não comecei direto do vídeo, estou fazendo estes destes com um arquivo MP3.
No código que vou postar, eu consegui fazer meu app executar o audio assim que inicia.
Porém ele não para de tocar. mesmo fechando o programa.
Então eu tentei adicionar um código que pare o audio ao sair, mas não funciona.
pode dar uma olhada para mim?
Veja o código.
package delai.org.delaitvplayer;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Aqui é dado play no audio.
MediaPlayer player = MediaPlayer.create(this, R.raw.audio1);
player.start();
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
// Aqui foi minha tentativa de parar ao sair do app. mas não funcionou.
@Override
protected void onStop(){
super.onStop();
MediaPlayer player = MediaPlayer.create(this, R.raw.audio1);
if(player != null) {
player.stop();
player.release();
}
}
}
EDIT: Agora que eu vi, no método onStop, vc está instanciando outro objeto, aí o primeiro que vc iniciou no onCreate não vai parar nunca. Eu recomendo que vc use apenas um objeto do tipo MediaPlayer, criando o mesmo no onCreate, e nos outros métodos vc pode manipular ele, como pausar, parar, entre outras coisas.
Já está reproduzindo videos utilizando o VideoView, porém só consigo reproduzir um vídeo predefinido no código, e que quero que reproduza, todos os vídeos da pasta “dtvplayer/videos”
Alguém tem idéia de como me ajudar, segue código atual:
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
// Cria pasta "dtvplayer" no SD card "memória interna", necessita importar "import android.os.Environment"
// necessita adicionar permissão abaixo no android manifest:
// <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
new File(Environment.getExternalStorageDirectory(), "dtvplayer" ).mkdir();
// Cria pasta "videos" dentro da pasta "dtvplayer"
new File("mnt/sdcard/dtvplayer/", "videos" ).mkdir();
// Remove a barra de status desta Actitivy, necessita importar "import android.view.WindowManager;"
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// Remove a barra de título desta Activity, necessita importar "import android.view.Window;"
requestWindowFeature(Window.FEATURE_NO_TITLE);
// Player de vídeo, necessita importar "import android.widget.VideoView;"
final VideoView v = new VideoView(this);
setContentView(v);
// Cria a variável que contém o endereço dos vídeos.
// Pode ser em um endereço completo com subpastas, neste caso a variável é "vídeosDir".
String videosDir = "mnt/sdcard/dtvplayer/videos";
// Definindo o local e nome do arquivo a ser executado.
// Caso tenha escolhido o endereço completo, use esta opção "videoDir".
final File file = new File(videosDir,"videomp4.mp4" );
String path = file.getAbsolutePath();
v.setVideoPath(path);
v.requestFocus();
// Executa o vídeo ao iniciar
v.start();
// Executar o Looping nos vídeos
v.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
v.setVideoPath(file.getAbsolutePath());
v.start();
}
}); // Fim do código do Looping
}