Pro Java ME MMAPI: Mobile Media API for Java Micro Edition has amazed me. The book is unique as it covers and demystifies one of the most fragmented and confusing Optional Packages for JME. I've read more than a dozen books about JME but this is the first book that has really cleared some doubts I had regarding Mobile Media in JME. I strongly recommend this book if you are developing Multimedia Applications using JME.
Vikram Goyal has done an outstanding job by clarifying and detailing every aspect of MMAPI, discussing the way it has been specified, emphasizing the differences that may occur from one implementation to another and also providing clear, detailed and error free examples that illustrate the aspects being discussed. Also, the text is very well written and I've found only 3 typos. Very impressive! Apress is also doing a wonderful job.
Chapter 1 introduces MMAPI and presents its features and requirements as defined by the JCP - Java Community Process, compares MMAPI and the MIDP 2.0 Media subset, where it fits regarding the JME Software stack and at last it lists the manufactures and market players supporting MMAPI. Nice introduction!
Chapter 2 explains the MMAPI Architecture, the main high-level interfaces, delivers an introduction to the supported protocols and content types, presents the relevant feature sets and the security issues one must take into consideration. It also details the MIDP 2.0 Media subset so that one can understand what's left out on devices implementing it.
Chapter 3 introduces the reader to MMAPI hands-on programming by explaining two simple MIDlets. It also builds the foundation regarding the overall development process and environment.
Chapter 4 is unique, it details the Media Player lifecycle, its possible states and transitions. It explains each state very thoroughly as well as Player events and how to work with them, even the limitations and issues regarding custom events. I've never read a book covering MMAPI with such a detailed explanation.
Chapter 5 covers all the issues regarding the access of media over networks. It starts with a very clear explanation of Threads in JME as well as the security permissions for media acess over networks. Then it puts it all together in a very clear and easy to follow example.
Chapters 6 and 7 are the best ones in my opinion. Those two chapters do pay the book, definitely.Vikram has been brilliant and desmystified Synthetic Tones and the MIDI protocol. He has remembered me of my of childhood, when I've had musical theory classes as it explains everything music and shows you how that all fits into programming with MMAPI. Those chapters are so complete that they have a lot of tips on how to convert from RTTTL to MMAPI format, the MIDI specification and message format and how to work with MIDI in MMAPI, how to create JTS files and other niceties.
Chapter 8 explains how to work with Audio and Video, playback, capturing, storing, controlling, mixing, it's everything there. It also describes the details of Media Encodings and Sampled Audio as well as the GUI options for dealing with Video.
Chapter 9 has a very cool Device Blogging application that builds upon all the subjects presented so far and also gives a good example of MVC pattern in JME.
Well, the only criticism I have is regarding the section about Streaming Media and also the Appendix about the JSR 234 - Advanced Multimedia Supplements. Considering that Vikram has proved he's really a subject matter expert, he could have provided better sections about them.
Actually, He has already written an article about Streaming in JME
and it's available on his web site but AMMS is still to be covered. What about on the second edition of his book? Let's wait and see!
A must have book, 5 stars, absolutely!
Pro Java ME MMAPI: Mobile Media API for Java Micro Edition by Vikram Goyal
Hardcover: 250 pages
Publisher: Apress (May 1, 2006)