不是所有的苹果设备都不支持Flash,所以你指的应该是iOS吧。当时的官方说法,主要是缘于当时Flash播放器过于耗电,不适合移动设备。考虑到当时经常会有打开了Flash网页时的笔记本电脑(尤其是非Windows系统)发热显著上升的体验,这点可以算是事实。由于大多数门户网站都内嵌了Flash广告,因而浏览网页时的确很有可能会显著消耗电池电量。相比之下,HTML5的视频播放由于实现时较有效利用了硬件资源,所以能耗方面可以优化,而类似于Flash的矢量动画,虽说用HTML5实现不见得能提升多少性能(如果不是降得更低),但毕竟HTML5的页面广告几乎没有,所以砍掉Flash的确有可能大幅减少网页浏览时的CPU计算量。既有的Flash应用通常基于鼠标动作,对触摸支持不够好。这也是另一官方的理由。安全性:内置Flash支持意味着有可能引入相关的安全漏洞,而Flash实现由Adobe掌控,一旦出现问题,苹果难以直接把握。另外,较为流行的非官方观点:基于Flash平台的应用非常丰富,很有可能威胁到苹果自家的AppStore:假如大家都上网玩儿免费的Flash版的游戏去了,就不会再去买AppStore上的同类产品,苹果也就分不到钱了。
HTML5的Audio标签,目前的主流浏览器都支持,只不过各种浏览器对音频的支持的格式不同,当前,audio 元素支持三种音频格式:
IE 9 支持 MP3
Firefox 3.5 支持 Ogg Vorbis、Wav
Opera 10.5 支持 Ogg Vorbis、Wav
Chrome 3.0 支持 Ogg Vorbis、MP3
Safari 3.0 支持 MP3、Wav
html5标签audio的autoplay属性可以设置在页面打开后自动播放。这个属性本来挺好的。但是最近做了一个项目却发现在iphone上无法自动播放。
各种查阅资料后发现原来iphone公司是考虑到用户可能是用手机流量访问的情况,为了用户流量着想,所以需要用户交互后才能播放。虽然苹果公司是出于好心,但是如果网页打开之后还需要一个交互才能听到美妙的背景音乐,那么网站的体验效果自然差了很多。可是这种问题要怎么解决呢?
冥思苦想了很久,终于做了一个艰难的决定。于是乎就这样尝试了一下:
$(function(){
$("#audio")[0].play()
})
没想到竟然好用!!!
全部的代码是这样
<html>
<head>
<script src="js/jquery.js"></script>
</head>
<body>
<audio id="audio" src="song.mp3" autoplay="autoplay">
您的浏览器不支持audio标签。
</audio>
$(function(){
$("#audio")[0].play()
})
</body>
</html>