Tela Branca na MMAPI

Galera, estava fazendo um exemplo de MMAPI com Canvas, mas quando habilito o VideoControl, a tela do aparelho fica totalmente branca, e depois de um tempo, volta a minha tela principal, e no emulador funciona normal, o que pode ser?

Segue parte do código…

private void habilitaCamera() {
		//meu metodo para habilitar a camera
                try {
			this.mPlayer = Manager.createPlayer("capture://video");
			this.mPlayer.realize();
			this.vControl = (VideoControl) this.mPlayer.getControl("VideoControl");
			this.camView = new CameraView("Capturando Imagem", this.vControl);
			this.camView.addCommand(this.cmdVoltar);

			this.mPlayer.start();
		}
		catch(Exception e) {
			//trata exceção, e mostro na tela
		}

                //classe canView que estende de Canvas
                //no construtor...
                this.videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
				
		try {
			this.videoControl.setDisplayFullScreen(true);
			this.videoControl.setVisible(true);
		}
		catch(MediaException e) {
			//trato exceção e apresento na tela
		}

Descobri onde está o erro. mas ainda não achei a solução =/
Ele cai na exceção quando tenta executar o this.mPlayer = Manager.createPlayer("capture://video");
e me retorna null.

O q pode ser?

Tem certeza que o celular suporta capture/video ?

Testou do modo apropriado isto ?

Sim, testei em dois celulares que olhei no site do fabricante e tem suporte a JSR135, e testei ainda em um BlackBerry 8310 e um LG KP570.

Qual seria o modo apropriado? =/

Ter suporte a JSR-135 não significa que o aparelho É CAPAZ de capturar vídeo…deveria saber disto ao ter lido o javadoc da MMAPI.

Lá está escrito que suas partes são opcionais e cabe ao fabricante decidir o que quer implementar.

Lá também mostra que você deve testar se o dispositivo suporta captura de video usando System.getProperty.

Bom, mais mastigado que isto só assando o peixe.

Agora é com vc. Pesque-o ! Eu já indiquei onde ele está passando…

Ok, correto isso que vc falou, porém quando testo o System.getProperty(“video.snapshot.encodings”); ele me retorna true.

Ou talvez eu precise colocar a exibição do VideoControl em uma Thread? :oops:

Não é esta a propriedade. Releia a capa do javadoc da MMAPI.

Peguei um exemplo que testa todas as propriedades da MMAPI, e as relacionadas com video, image, retornaram true.
Mas continua gerando uma exceção no Manager.createPlayer(“capture://video”);
E para piorar, a mensagem da exceção é vazia =/

A propriedade correta é:

supports.video.capture

Tá lá na capa do javadoc da MMAPI

[quote=boone]A propriedade correta é:

supports.video.capture

Tá lá na capa do javadoc da MMAPI[/quote]

Pois é, essa foi uma das propriedades testadas, e em um aparelho retornou true e mesmo assim não funcionou, e em outro HTC, retorno null, sabes pq?
Se ele não tivesse suporte ele teria retornado false, certo?

Para exibir a camera, o correto é “capture://video” ?
Pois estive olhando no JAVADOC que há outras opções, mas tbm não funcionaram…

[quote=j0nny][quote=boone]A propriedade correta é:

supports.video.capture

Tá lá na capa do javadoc da MMAPI[/quote]

Pois é, essa foi uma das propriedades testadas, e em um aparelho retornou true e mesmo assim não funcionou, e em outro HTC, retorno null, sabes pq?
[/quote]
Esta propriedade não pode retornar null pois ou é true ou false. Esta escrito na especificação. Tem certeza que foi esta propriedade que indiquei q você testou?

[quote=j0nny]
Se ele não tivesse suporte ele teria retornado false, certo?[/quote]
Correto.

Testei esta propriedade que vc falou num HTC, e ele continua me retornando null…

Pode-se concluir então que a implementação Java do HTC não segue a especificação, o que não deveria ocorrer.

Pois é, vou ter que apelar e conseguir outro aparelho.
Vc saberia me dizer quais aparelhos que tem suporte a captura de fotos?

Testei em um Nokia E71 e funcionou, obrigado pela ajuda pessoal.
Mas sigo com outras dúvidas agora.
Tenho meus próprios commands em Canvas, que adiciono no meu Form Canvas que contém o VideoControl, mas o video da Camera “impede” que meus commands apareçam, como resolver isso?