Código para player de vídeo em android

4 respostas
L

Olá gente.

Quero desenvolver um sistema de mídia digital indoor.

E quero iniciar pelo player de vídeo.

Eu não encontrei em lugar algum um código ou informação de como começar.

O player basicamente vai reproduzir videos que estão armazenados em alguma pasta no celular, seguindo a orde de uma playlist também local.

O player não precisa ter opções de pular, voltar, pausar, nada disto, ele simplesmente vai reproduzir uma playlist automaticamente ao abrir.

Alguém pode me dar uma luz?

4 Respostas

M

Use um VideoView, com o setMidia (ou setUrl não lembro)

L

Olá Marky.

Primeiramente obrigado pela dica.

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();
		}
	}
		
		
	
}
M

Coloque a parada do audio no método onDestroy().

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.

L

Meu código evoluiu bastante.

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:

import java.io.File;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.Window;
import android.view.WindowManager;
import android.widget.VideoView;


public class MainActivity extends Activity {

	@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
				
	}

	
}
Criado 7 de fevereiro de 2014
Ultima resposta 14 de abr. de 2014
Respostas 4
Participantes 3