Skip to main content

We Came to Play

Posted by editor on August 22, 2006 at 7:09 AM PDT

Podcasting, mobile streaming, and more media

I think it's fair to say that media is not currently one of Java's strengths. I'm reminded of this by the fact that in another window, I have the Pandora music player running. This is a browser-based application that asks you to enter some artists or songs you like and then finds music it considers "similar" and builds a personalized music stream, right there in the web interface. This morning, it's dealing me an odder-than-usual mix (last five artists: Yoko Kanno, Heather Duby, Loudermilk, The Radar Bros., and Frank Zappa).

Maybe this application could done be an AWT/Swing applet with some sort of media API to handle the audio playback, but the HTML source reveals it to be Flash, specifically tuner_7_2_0_2_pandora.swf.

Sometimes when I see apps that could have been Java (or, in the case of the Windows-only manager app for the Sony Reader, should have been), I wonder if Java was considered and rejected for the implementation, or if it was simply not considered at all. Those are two dramatically different problems for Java Media to solve, and progress is impossible until the correct problem is determined.

Vikram Goyal has been giving the Mobile Media API a thorough going-over, writing an entire book on the topic: Pro Java ME MMAPI: Mobile Media API for Java Micro Edition. But sometimes, ambition gets the best of you, and you want to go farther than today's tools will take you. That's the case with today's Feature Article, Experiments in Streaming Content in Java ME, in which he tries to coax MMAPI to go beyond playing small files and instead support live streaming media. He writes that since publishing the book, this has been a hot topic:

I have been inundated with requests to help readers with streaming content via MMAPI for Java enabled mobile devices. This topic was an important omission from the book, but one that was simply not feasible to include because of the lack of support for it within various MMAPI implementations. In this article, I will show you the results of experiments I have conducted since the publication of the book to stream content via MMAPI using a custom datasource.

It's important to know before you memorize all the details that while MMAPI can handle a streaming DataSource, it's not currently able to play that media to the device. Instead, what Vikram has is the results of an experiment that shows how far MMAPI gets you today, what the devices and the API need to change to be able to play streaming media, and the steps that will get you there once they do.

David Herron also has media on the mind in in today's Weblogs. In

Java posse #078 feedback / clarification, he responds to being misidentified as "The dude in charge of open sourcing Java", and proceeds to talk about Josh Marinacci's comment to the Posse that media formats don't matter for apps like YouTube and Google Video. David writes "video distribution is one of these issues where The Big Guys are trying to limit our choices. For example the Big Media companies don't want unprotected video widely available, because they earn their bucks over limiting the redistribution of video. For example Microsoft has for years been trying to steer Internet Video over to the Windows Media format, no doubt because it would increase sales of Windows systems."

Dru Devore digs deep into bytecode in Declare Variables Inside or Outside a Loop:
"This blog walks through the byte code for different scenarios of putting variables inside and outside a loop. Describing what is happening from the byte code level and which method is better."

Finally, Tim Boudreau has some
Continuation tooltips for JLists and JTrees:
"A while back I wrote support for Outlook-style completion tooltips for JLists and JTrees for NetBeans' Explorer components - for cases where part of a tree cell is not visible in a JTree or JList without scrolling. It's not NB specific - you can use it in your own apps as well."

kirillcool looks at the challenges of Swing look-and-feel development
in today's Forums. In
Re: Alpha blended borders, he writes:
"as far as Basic vs. Synth, you have to consider the availability of resources. You have about 5-6 open-source look-and-feels inheriting from Basic, and you have only one *and* close-sourced inheriting from Synth. Sun's strategy with Synth can be at best be described as strange - not a single good and *complete* tutorial on Synth, no visual tools to build a Synth-based LAF (Romain was working on that but it was never completed). So, for both short and long term, i'd advise going with Basic."

robogeek clears up the motivations behind dual-licensing in
Re: Would more than one license be confusing?: "Dual-licensing is widely used .. e.g. MySQL is dual licensed. One thing it seems to allow is for a 3rd party to build a propriatary application based on the open source project. They would go to the "owner" of the open source project and do the licensing agreement for the closed version of the project in order to have the rights to redistribute a closed source application using the technology. e.g. someone bundling MySQL in a closed source application would to to the MySQL team for a license that lets them do so."

In Java Today,
the JDK Community notes "the good folks at Java Posse have provided the full audio of the Java Open Source press conference," in Java Posse #077 - Special Open Source Java Update. You can click the "POD" link on the episode page to get the 23-minute MP3 directly, or subscribe to the show's RSS feed with your podcasting client of choice.

Issue 254 of the NetBeans Weekly Newsletter is out, with items on the updated NetBeans C/C++ Pack and Enterprise Pack, the release of NetBeans 6.0 Milestone 2, NetBeans in your language, a new article on building and deploying web services, the return of the NetBeans Podcast, WebFrameworkProvider and HyperlinkProvider, 10 Tips for Coding with NetBeans, NetBeans Plug-in: Janino Plugin, Tapestry support for NetBeans and more...

Apologies for the cliché, but it's clear that two paths diverge in the browser client woods, as Frank Sommers considers The Two Roads to Ajax: "Two distinct approaches to Ajax application development emerged in recent years, each extending previous architecture models. As the two seem incompatible, you will need to make a choice."

In today's
News Headlines

Registered users can submit news items for the href=""> News Page using our
news submission
. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href=""> News RSS

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

Podcasting, mobile streaming, and more media