MIDP: Music and Sound

download MIDP: Music and Sound

of 23

  • date post

  • Category


  • view

  • download


Embed Size (px)

Transcript of MIDP: Music and Sound

  • 1. MIDP: Music and Sound Jussi Pohjolainen Tampere University of Applied Sciences

2. Sound and Music, the Basics MIDP 2.0 includes basic audio capabiliEes Media API in MIDP 2.0 is a subset of the MMAPI (Mobile Media API). MMAPI: hHp://jcp.org/en/jsr/detail?id=135 Subset of the MMAPI that is included in MIDP 2.0 is called Audio Building Block (ABB). Features: Playing simple tones and sampled audio Media API can also be used as playing all kinds of media, for example movies. 3. MIDP 2.0 Media Concepts Audio data comes in variety of content types. Content type = le format! MP3, AIFF, WAF etc. Content types are specied using MIME types, which use a string to specify a 1) primary and 2) secondary type. Example: "audio/x-wav" Content type tells how to translate bits into sound. 4. Dierent content types Wave audio les: audio/x-wav AU audio les: audio/basic MP3 audio les: audio/mpeg MIDI les: audio/midi hHp://www.iana.org/assignments/media- types/ 5. Audio Data Path For example: Handles Interface in applause.wa transporEng the javax.microediEon. data to the v media player Audio DataSource Player Data [ speaker ] 6. RelaEonship between classes Manager creates a player with certain content types and protocols Manager creates DataSource Player Controllers can control tone and volume Control 7. Supported Content Types and Protocols MIDP 2.0 spec: if sampled audio is supported at all, then 8-bit PCM WAV must be supported. WAV is guaranteed.. your mobile phone can support other content types, for example mp3. It is possible to ask (runEme) from Manager which content types and protocols it can handle. Protocol, for example: hCp, le, capture. 8. Manager-class javac.microedition.media.Manager is the access point for obtaining system dependent resources such as Players for mulEmedia processing. A Player is an object used to control and render media that is specic to the content type of the data. Manager provides access to an implementaEon specic mechanism for construcEng Players. For convenience, Manager also provides a simplied method to generate simple tones. 9. Supported Protocols and Content types To nd out at runEme what content types and protocols are supported: Manager-class public static String[]getSupportedContentTypes(String protocol)! public static String[]getSupportedProtocols(String content_type)! See example: MediaInformaEonMIDlet.java 10. Player Life Cycle Player has detailed life cycle Life cycle has states: UNREALIZED Player is created, but it hasnt tried to nd audio data. REALIZED Media data is located. PREFETCHED Audio data is fetched and ready to go STARTED Audio data is playing CLOSED All resources are released 11. Player States 12. CreaEng a Player Player is created using by Manager class public static Player createPlayer(InputStream stream, String type)! Example Player player = Manager.createPlayer(...);! Parameters Stream to the data le. String type = content type, example: "audio/x- wav" 13. Example of creaEng Player instance Example InputStream in = getClass().getResourceAsStream("/ relax.wav");! Player player = Manager.createPlayer(in, "audio/x-wav");! ExcepEon handling is necessary, use try catch. Example: SimpleGameWithSounds.java (Maybe the most irritaEng game of all Eme) 14. Controlling Players Player has following methods that control played sound: setMediaTime(long now) - jump directly to parEcular point in an audio clip setLoopCount(int count) - loop 15. Player Controls Control classes can control Players You can obtain a list of Controls for a Player by calling getControls(). MIDP 2.0 has only two Controls for the Player: VolumeControl ToneControl! Example of usage: VolumeControl vc = (VolumeControl) player.getControl("VolumeControl");! vc.setLevel(50); 16. OpEonal APIs 17. Mobile Media API (JSR 135) Playing sounds and tones Also capturing media MMAPI supports capturing audio and video from onboard hardware Recording sound, video and taking pictures hHp://today.java.net/pub/a/today/ 2005/09/27/j2me4.html 18. Wireless Messaging API (JSR 205) Common API for sending and receiving text and binary messages. hHp://developers.sun.com/mobility/midp/ arEcles/wma/ 19. Bluetooth API (JSR 82) ConnecEng via Bluetooth Tutorial hHp://developers.sun.com/mobility/midp/arEcles/bluetooth2/ 20. JAXP XML Parser (JSR 172) This JSR is designed to provide a general purpose XML API for the next generaEon of mobile devices Supports SAX 2 event handler-based parsing 21. LocaEon API (JSR 179) Enables developers to write mobile locaEon- based applicaEons for resource-limited devices Determining devices locaEon (GPS) Tutorial hHp://developers.sun.com/mobility/apis/ arEcles/locaEon/ 22. Mobile InternaEonalizaEon API (JSR 238) This JSR denes an API that provides culturally correct data formakng, sorEng of text strings and applicaEon resource processing for J2ME MIDlets running in MIDP over CLDC. Tutorial hHp://www.ibm.com/developerworks/wireless/ library/wi-midapi/ 23. Scalable 2D Vector Graphics API for J2ME (JSR 226) Scalable 2D Vector Graphics API for J2ME (JSR 226) provides MIDlets with an API for displaying SVG content. Tutorial hHp://developers.sun.com/mobility/midp/ arEcles/s2dvg/index.html