使用J2ME进行音频流传输

时间:2009-09-23 19:56:43

标签: java-me

我以MP3文件的形式在线收听音频,如何从我的J2ME应用程序中传输音频?一个网站为应用程序提供要播放的音频列表,选择音频,然后必须从网站流式传输。

示例代码会很好。感谢

3 个答案:

答案 0 :(得分:3)

没有可靠的方法来确保MIDlet将流式传输音频数据,因为您无法控制手机制造商如何实施JSR-135(规范为您提供API以在MIDlet中播放音频)。 / p>

从技术上讲,使用javax.microedition.media.Manager.createPlayer(String aUrl)创建Java媒体播放器应该使JSR-135实现流处理位于URL的音频数据。

不幸的是,通常只通过网络连接支持非常简单的音频内容流式传输(通常比mp3更频繁),如果有的话,通常会调用createPlayer(String aUrl)来引发异常。该网址不以“file://”

开头

有些设备可以让制造商设法将更完整的音频/网络模块插入JSR-135实现中,但找到它们需要为您进行大量测试。

答案 1 :(得分:2)

J2ME不允许您通过HTTP执行此操作。它将在开始播放之前下载整个音频。您需要的是将其托管在RTP服务器上;只有这样,J2ME才能传输音频。

如果这不好,那么你可能会被迫寻找拥有自己的专有库的设备。

答案 2 :(得分:2)

有一种更好的方法可以做到这一点。 创建自己的InputStream扩展类。 MyHTTPInputStream,实现所有方法。运行一个线程从HTTP检索数据并将其存储在缓冲区中,当Player类调用InputStream.read()方法时,从缓冲区提供数据。

在为Player实现此类之前,使用存储在手机内存或附加卡中的虚拟WAV文件测试MyHTTPInputStream。因此,您可以知道从InputStream调用哪些方法,并且您也可以知道类Player所进行的方法调用的顺序。