使用播放器切换的 Mp3 流式传输
Posted
技术标签:
【中文标题】使用播放器切换的 Mp3 流式传输【英文标题】:Mp3 Streaming Using Player Switching 【发布时间】:2012-06-18 14:16:40 【问题描述】:我正在开发一个示例应用程序,它可以播放广播 mp3 流(为 S40 平台、CLDC 1.1、MIDP 2.0 开发)。我正在使用两个播放器切换以继续播放。
我使用以下逻辑进行流式传输。
Buffer enough chunks
Start Player1
Wait Player1 to finish
Start Player2
Wait Player2 to finish
repeat... 2
问题是,在玩家之间切换时,听众会感觉到 1 秒的沉默(间隙)。
我想知道是否可以无间隙地从服务器流式传输音频(在切换播放器时)?
这是我的启动播放器代码:
Player p = Manager.createPlayer(is, type);
p.addPlayerListener(playerListener);
p.realize();
p.prefetch();
Player2
在 Player1
完成之前预取 - 我为玩家创建了一个 FIFO 队列,当下载一个块时,我创建输入流 -> Player -> Realize() -> Prefetch() -> Push into队列。
【问题讨论】:
你使用 Player.prefetch() 吗?此方法“获取稀缺和专有资源并处理尽可能多的数据以减少启动延迟...” 是的,我正在使用 Player.prefetch(),这是我启动播放器的代码。玩家 p = Manager.createPlayer(is, type); p.addPlayerListener(playerListener); p.realize(); p.prefetch(); player2 是否在 player1 完成之前预取? 是的,我为播放器创建了一个 FIFO 队列,当下载一个块时,我创建了输入流 -> Player -> Realize() -> Prefetch() -> Push into the Queue。 所以,当 player1 的 playerListener.playerUpdate 事件等于 END_OF_MEDIA 时调用 player2.start(),对吧? 【参考方案1】:也有这个项目:mfradio.sourceforge.net,但不再维护,我没有让它在“后期”MIDP 设备(索尼 W995)上工作,我仍在使用另一个 android 设备。
您的开发是否在某处可用?
谢谢。
【讨论】:
以上是关于使用播放器切换的 Mp3 流式传输的主要内容,如果未能解决你的问题,请参考以下文章