A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Bluetooth e MMAPI para a transmissão e manipulação de vídeo em dispositivos móveis Daniel Welfer

Apresentações semelhantes


Apresentação em tema: "Bluetooth e MMAPI para a transmissão e manipulação de vídeo em dispositivos móveis Daniel Welfer"— Transcrição da apresentação:

1 Bluetooth e MMAPI para a transmissão e manipulação de vídeo em dispositivos móveis Daniel Welfer welfer@gmail.com

2 Sumário Java Bluetooth API - JSR-82 Mobile Media API - JSR-135 Aplicação Referências

3 Bluetooth - Origem Tecnologia criada pelos engenheiros Sven Mattisson e Jaap Haartsen da fabricante de telefones Ericsson Mobile Communications da Suécia;

4 Bluetooth - Origem Projeto era desenvolver uma interface de comunicação entre telefones móveis e seus acessórios. Descobriram que usando uma frequência de rádio era possível alcançar isso com baixo consumo de energia e baixo custo. Opera em uma frequência de radio baixa e que não requer licença. Então, sem custo; 1Mbps; alcance de cerca de 10 metros. Consome 500 X menos energia que o padrão IEEE 802.11x; Era chamada de Multi-Communicator Link (MC Link)

5 Bluetooth - Origem Começou sua padronização (1998) pelas empresas: Ericsson, IBM, Intel, Nokia, and Toshiba onde passou a se chamar Bluetooth;

6 Bluetooth - Origem Homenagem ao Rei Viking dinamarquês Harald Bluetooth – (911 a 985 A.D.); O símbolo da tecnologia bluetooth. Em caracteres rúnicos representa um H e um B. Harald Bluetooth – “o unificador”

7 Bluetooth – Radio Frequência

8 Java Bluetooth API Componentes básicos: Stack Initialization; Device Management; Device Discovery; Service Discovery; Service Registration; Communication.

9 Java Bluetooth API - Device Management Classes que permitem obter informações estatísticas de dispositivos bluetooth Locais ( LocalDevice ) e remotos ( RemoteDevice ). import javax.bluetooth.LocalDevice; LocalDevice localDevice = LocalDevice.getLocalDevice(); localDevice.setDiscoverable(DiscoveryAg ent.GIAC);

10 Java Bluetooth API - Device Management localDevice.setDiscoverable(Disco veryAgent.GIAC);

11 Java Bluetooth API - Device Management System.out.println("local device: " + localDevice.getBluetoothAddress()); System.out.println("friendlyName: " + localDevice.getFriendlyName()); local device: 0000000DECAF friendlyName: WirelessToolkit

12 Java Bluetooth API - Device Discovery Descobrindo dispositivos: ( RemoteDevice, DiscoveryAgent e DiscoveryListener ) DiscoveryAgent discoveryAgent = localDevice.getDiscoveryAgent(); discoveryAgent.startInquiry(DiscoveryAgent. GIAC, this);

13 Java Bluetooth API - Device Discovery A interface: DiscoveryListener public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) {} Método chamado quando um dispositivo bluetooth é encontrado na vizinhança; System.out.println("Remote device Address: " + btDevice.getBluetoothAddress()); System.out.println("Major Device Class: " + cod.getMajorDeviceClass() + " Minor Device Class: " + cod.getMinorDeviceClass());

14 Java Bluetooth API - Device Discovery

15 A interface: DiscoveryListener public void inquiryCompleted(int discType) {} Método chamado quando a transação da descoberta de um despositivo foi completada ; discType pode ser: INQUIRY_COMPLETED INQUIRY_ERROR INQUIRY_TERMINATED

16 Java Bluetooth API - Service Discovery A interface: DiscoveryListener public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {} Método chamado quando serviços são encontrados Invocado no método inquiryCompleted: discoveryAgent.searchServices(attrSet, uuid, remoteDevice[0], this); int[] attrSet = {0x0100}; UUID RFCOMM_UUID = new UUID(0x0003); uuid[0] = RFCOMM_UUID;

17 Java Bluetooth API - Service Discovery attrSet é uma entrada em um service records; SDDB (Service Discovery Database). DataElement serviceNameElement = servRecord[0].getAttributeValue(0x100); String serviceName = (String)serviceNameElement.getValue(); UrlServico.addElement(servRecord[i].getConnecti onURL(ServiceRecord. NOAUTHENTICATE_NOENCRYPT, true)); http://www.bluetooth.org/assigned-numbers/sdp.htm

18 Java Bluetooth API - Service Discovery A interface: DiscoveryListener public void serviceSearchCompleted(int transID, int responseCode) {} Método chamado quando a procura pelo serviço é finalizada; responseCode: SERVICE_SEARCH_ERROR SERVICE_SEARCH_COMPLETED SERVICE_SEARCH_NO_RECORDS Posso começar a receber dados;

19 Java Bluetooth API - Service Registration and Communication O servidor registra o serviço no SDDB; url = "btspp://localhost:00112233445566778899AABBCCDDEEF F;name=video"; //btspp = Bluetooth Serial Port Profile StreamConnectionNotifier notifier = (StreamConnectionNotifier) Connector.open(url); //similar a ServerSocketConnection notifier.acceptAndOpen();//espera requisição cliente

20 Java Bluetooth API - Service Registration and Communication Protocolos de comunicação Bluetooth: RFCOMM L2CAP OBEX

21 Mobile Media API - JSR-135 import javax.microedition.media.*; Player : interface que lida com o processamento do dado multimedia. DataSource : classe abstrata para localização e recuperação do dado multimedia.

22 Mobile Media API - JSR-135 String arquivo = "file:///root1/" + this.filenameReceived; FileConnection fileConnection = (FileConnection) Connector.open(arquivo, Connector.READ_WRITE); InputStream inputStream = fileConnection.openInputStream(); Player player = Manager.createPlayer(inputStream, "video/mpeg");

23 Mobile Media API - LifeCycle Um player possui 5 diferentes estados: UNREALIZED, REALIZED, PREFETCHED, STARTED, and CLOSED Síncronos. MediaException

24 Mobile Media API - LifeCycle UNREALIZED: recupera informações simples sobre a mídia como o tempo de duração de um video/áudio, tipo de conteúdo… REALIZED: se existe permissão para acessar o arquivo (i.e. DRM – Digital Rights Management), comunicação com servidor, manipulação de arquivo; PREFETCHED: decodificação dos dados ; STARTED: executa a media CLOSED: encerra a media. Libera os recursos;

25 Mobile Media API - Video Trabalhando com Video: VideoControl é uma interface para controlar video. VideoControl videoControl = (VideoControl) player.getControl( "javax.microedition.media.control.VideoControl "); //renderiza o video diretamente em um canvas videoControl.initDisplayMode(VideoControl.USE_DIR ECT_VIDEO, canvas); videoControl.setVisible(true); mDisplay.setCurrent(canvas); player.start();

26 Aplicação Mostra Estatísticas locais Registra um Serviço de video Disponibiliza Serviço de video Mostra Estatísticas locais Procura Dispositivo/ Serviço Recebe Serviço Exibe video “servidor” /escravo recebe a conexão “cliente”/mestre(inicia conexão)

27 Aplicação Mostra Estatísticas locais Procura Dispositivo/ Serviço Recebe Serviço Exibe video Filmes angiográficos em DICOM Conversão mpeg Perda de informação

28 Conclusões Manipulação de dados multimedia é time consuming; Alcance do “link” bluetooth pode ser estendido para mais de 10 metros usando bluetooth hotspots; Tecnologia que pode ser muito mais explorada (ex: jogos multiplayers)

29 Referências Bruce Hopkins and Ranjith Antony. Bluetooth for Java. Apress, New York – 2003; Michael Miller. Discovering Bluetooth. Sybex, CA – 2001; Sing Li and Jonathan Knudsen. Beginning J2ME: From Novice to Professional, Third Edition, Apress, New York – 2005; Vikram Goyal. Pro Java ME MMAPI: Mobile Media API for Java Micro Edition. Apress, New York – 2006;


Carregar ppt "Bluetooth e MMAPI para a transmissão e manipulação de vídeo em dispositivos móveis Daniel Welfer"

Apresentações semelhantes


Anúncios Google