html5播放音乐为啥苹果手机为啥不能播放

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html5播放音乐为啥苹果手机为啥不能播放相关的知识,希望对你有一定的参考价值。

<audio src="images/cz.mp3" controls="controls">
</audio>

我在电脑里播放没问题,为什么上传到空间就播放不了。
http://demo.ke01.com/201410/01/images/wuwangxinan.mp3源文件

http://www.szprint.org/test/jrbs/images/cz.mp3替换后的mp3文件

为什么替换后就不行,都是Mp3.我在苹果6手机微信看没音乐效果

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>

参考技术A 目前,苹果的Safari 3.0对HTML5的音频格式只支持MP3、Wav两种格式。

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
参考技术B 这要看浏览器是否支持HTML5了,HTML5现在是新东西,新东西刚开始不容易被接受追问

你好象对我说的不明白,我的意思播放器是在iPhone6手机里面播放的。html5怎么可能不兼容iPhone6

追答

http://bbs.csdn.net/topics/390936884网上找了一下相关信息,希望能有用

参考技术C 做的前端页面不支持手机版本或者ios系统

iOS+Swift:为啥音乐不能在 iPad 上播放?

【中文标题】iOS+Swift:为啥音乐不能在 iPad 上播放?【英文标题】:iOS+Swift: Why is music not played on iPad?iOS+Swift:为什么音乐不能在 iPad 上播放? 【发布时间】:2016-08-16 10:37:06 【问题描述】:

我正在开发 SpriteKit 游戏并尝试播放循环音乐文件。这是我的代码:

var musicPlayer = AVAudioPlayer()

override func didMoveToView(view: SKView) 
    self.playBackgroundMusic("gravity")


private func playBackgroundMusic(filename: String) 
    do 
        let url = NSBundle.mainBundle().URLForResource(filename, withExtension: "m4a")
        print(url)
        self.musicPlayer = try AVAudioPlayer(contentsOfURL: url!)
        self.musicPlayer.numberOfLoops = -1
        self.musicPlayer.prepareToPlay()
        self.musicPlayer.play()
     catch let error as NSError 
        print("ERROR: \(error.description)")
    

这在我的 iPhone 4S 上测试时有效,但在 iPad Air 上无效(只是没有音乐播放,但适用于 Youtube 等应用程序)。奇怪的是,当我将我的蓝牙耳机连接到 iPad 时,它在用耳机收听时工作。

我的 iOS 版本都是 9.3.4,适用于 iPad Air 和 iPhone 4S。

有什么想法吗?这是苹果方面的错误吗?

【问题讨论】:

我会检查播放器上的channelAssignments 以确定正在用于输出的通道。 好的,musicPlayer.channelAssignments 返回 nil,但 musicPlayer.numberOfChannels 返回 1(在 iPhone 4S 和 iPad Air 上)。还有什么想法吗? 我找到了解决方案(cp. answer)。感谢您的帮助! 很高兴你找到它! 我也是 ;-) - 谢谢。 【参考方案1】:

好的,我找到了解决办法。在使用 AVAudioPlayer 播放任何音频之前尝试调用以下代码:

do 
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker)
 catch let error as NSError 
    print("ERROR: \(error.description)")

希望这对某人有所帮助。

【讨论】:

以上是关于html5播放音乐为啥苹果手机为啥不能播放的主要内容,如果未能解决你的问题,请参考以下文章

为啥苹果手机的视频播放不了?

苹果手机微信视频为啥不能播放?

为啥苹果手机视频播放不了

就是我插着耳机,手机在放一首歌,录视频为啥不能将歌旳声音录进去

html5的audio,audio.play()在手机浏览器中不能自动播放

为啥苹果设备在自己的播放器中播放 html5 视频?