1、JS播放音乐需要区分浏览器,来使用不用的对象来播放音乐。
2、在播放控制上要有【播放】和【停止】来控制音乐的播放。
3、基于以上思路,代码如下:
1、JS播放音乐需要区分浏览器,来使用不用的对象来播放音乐
2、在播放控制上要有【播放】和【停止】来控制音乐的播放
基于以上思路,代码如下:
<SCRIPT type="text/javascript">if(-1 != navigator.userAgent.indexOf("MSIE"))
{
//不是微软IE浏览器,则调用Flash来播放音乐
document.write(' <OBJECT id="Player"')
document.write(' classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"')
document.write(' width=0 height=0 > <param name="URL" value="a.mp3" /> <param name="AutoStart" value="false" /> </OBJECT>')
}
else
{
//是微软IE浏览器,则调用微软的Player对象来直接播放音乐
document.write(' <OBJECT id="Player"')
document.write(' type="application/x-ms-wmp"')
document.write(' autostart="false" src= "a.mp3" width=0 height=0> </OBJECT>')
}
</SCRIPT>
<input type=button value="播放" onclick="Player.controls.play()" />
<input type=button value="停止" onclick="Player.controls.stop()" />
----------------------1、转换音频流--------------------------loadAudioInfo=(audioId)=>{
let _this = this
const url = api.getAudioPath(audioId)
const request = new window.XMLHttpRequest()
request.open('GET', url, true)
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
request.setRequestHeader("APPID", "huizhan")
request.setRequestHeader("X-Account-Info", JSON.stringify( {userId: Application.userInfo.userId} ))
request.responseType = 'arraybuffer'
request.onreadystatechange = function (res) {
if (request.readyState == 4 && request.status == 200) {
_this.setState({
conferenceAudioWav: 'data:audio/wavbase64,' + Buffer.from(request.response).toString('base64'),
})
}
}
request.onerror = (err) => {
}
request.send()
}
-----------------------------2、正常使用audio标签 src赋值------------------------------