使用播放器切换的 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(); 

Player2Player1 完成之前预取 - 我为玩家创建了一个 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 流式传输的主要内容,如果未能解决你的问题,请参考以下文章

使用开源 PHP 流式传输 MP3 [关闭]

iOS 上的 MP3 流式传输

为啥这个 mp3 文件没有流式传输 [重复]

在 iphone 上通过 http 套接字播放 mp3 音频

使用 node js 实时流式传输 MP3 文件

流式传输音频文件并缓存它