如何在通过GPRS在iPhone浏览器上播放的HTML页面上嵌入音频/视频

How to embed audio/video on HTML page that plays on iPhone browser over GPRS

提问人:pythonquick 提问时间:9/18/2008 最后编辑:pythonquick 更新时间:2/28/2009 访问量:20504

问:

虽然我没有 iPhone 来测试这一点,但我的同事告诉我,嵌入式 媒体文件(例如以下代码片段中的媒体文件)仅在 iPhone 通过 WLAN连接或3G,通过GPRS连接时不起作用。

<html><body>
<object data="http://joliclic.free.fr/html/object-tag/en/data/test.mp3" type="audio/mpeg">
   <p>alternate text</p>
</object>
</body></html>

是否有带有媒体文件的示例 URL,可以在 iPhone 浏览器中播放 当 iphone 使用 GPRS(不是 3G)连接时?

iPhone HTML

评论


答:

0赞 Grank 9/18/2008 #1

我没有意识到这个限制。尽管在提供商可能按字节收费的蜂窝数据服务上禁用可能数据量很大的 OBJECT 或 EMBED 标签确实有意义,但如果这就是它仍然在 3G 上运行的原因,那么它仍然在 3G 上运行,而不是在 GPRS 上运行。
也许问题出在基本数据吞吐量上?自己(或我自己)没有iPhone,很难测试同事的陈述。
请记住,GPRS比Wi-Fi或3G慢得多。根据维基百科,GPRS将提供56到114 kbps的总双工吞吐量,但并非所有吞吐量都在下载方向上。你已经可以看到,这还不够快,无法立即流式传输典型的 128 kbps mp3,即使你获得了最佳吞吐量并将其全部作为下载速度。
这个论坛讨论为例,GPRS客户(不使用Telestra的客户,Telestra是该领域的EDGE提供商)获得了大约40 kbps的速度。因此,如果正如问题所暗示的那样,您被困在 EDGEland 中,而不是 3Gland 或介于两者之间的任何内容,那么播放 30 秒的 mp3 大约需要 20 秒的缓冲时间。当你使用像 OBJECT 或 EMBED 这样的行为模糊标签时,无法保证浏览器将如何解释它,以及它是否会尝试智能地流式传输文件,而不是在开始之前下载整个文件。
因此,您的同事很可能只是没有等待足够长的时间,看看他选择作为测试的任何嵌入式媒体是否开始播放(假设他没有在那里使用您的 17KB 测试 mp3)。iPhone也有可能确实有这个限制,尽管我认为谷歌会比我的快速搜索发现的更愿意使用它,因为人们对他们不喜欢iPhone的其他事情已经足够直言不讳了。另一种可能性是,这是目前随iPhone一起提供的Safari版本中的一个限制,可能会在将来的版本或其他浏览器中进行更改。
但归根结底,问题是,你真正想要什么样的用户体验?GPRS上的嵌入式音频将需要很长时间才能加载,并且用户不会享受这种体验,或者如果它应该在页面访问时开始播放并且在他们离开之前没有加载,那么用户甚至根本无法体验到它。在这种情况下,这可能不是一个值得努力的目标。

评论

0赞 pythonquick 9/22/2008
嗨,格兰克。iphone 优化的网页是关于播放简短的 MP3 序列(短语)的。用户 Benzado 指出,iphone YouTube 应用程序的行为因 EDGE/3G 连接而异。似乎浏览器遵循相同的主题。所以我接受了他的回答。也感谢您的回答。
2赞 benzado 9/18/2008 #2

iPhone YouTube 应用程序在通过 EDGE 连接时会自动下载比通过 Wi-Fi 连接时质量更低的视频,因为网络速度要慢得多。这一事实使我相信苹果会做出不费心通过EDGE下载MP3的设计决定。浏览器无法提前知道比特率是否足够低,而且很有可能不会。因此,与其让用户感到沮丧,不要让声音文件播放时间过长(并阻止他们在下载时接听电话),不如让他们免于悲伤并鼓励他们找到 Wi-Fi 热点。

1赞 Diogenes 2/28/2009 #3

试试这样的东西,它适用于网页。这实际上是一个 320kps 的 mp3,但它只有 30 秒长。您可以使用名为 LAME 的程序将 mp3 转换为比特率 这将为你工作。

<div class="music">
  <p>Pachelbel's Canon</p>
  <!--[if !IE]>-->
  <object id="Cannon" type="audio/mpeg" data="http://calgarydj.ca/sound%20files/Pachebels%20Cannon.mp3" width="250" height="16">
    <param name="autoplay" value="false" />
    <param name="src" value="http://calgarydj.ca/sound%20files/Pachebels%20Cannon.mp3" />
  <!--<![endif]-->
    <object id="Cannon" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="250" height="60">
      <param name="autostart" value="false" />

      <param name="url" value="http://calgarydj.ca/sound%20files/Pachebels%20Cannon.mp3" />
      <param name="showcontrols" value="true" />
      <param name="volume" value="100" />
    <!--[if !IE]>--></object><!--<![endif]-->
  </object>
</div><!-- end of control -->