您不需要sip.js
文件,如果您只想在浏览器中播放该文件。
要简单地播放 URL 中的文件,您可以使用fromURL
创建播放器的方法。
var player = AV.Player.fromURL(url);
这里有一个JSFiddle https://jsfiddle.net/28ppk74s/示例展示了它是如何工作的。
HTML
<button id="play">Play</button>
<button id="pause">Pause</button>
JavaScript
var playBtn = document.getElementById('play');
var pauseBtn = document.getElementById('pause');
var url = "https://upload.wikimedia.org/wikipedia/commons/5/5e/Debussy_-_Pour_les_accords.flac"
var player = AV.Player.fromURL(url);
playBtn.addEventListener('click', function() {
player.play()
})
pauseBtn.addEventListener('click', function() {
player.pause()
})
您还可以使用FileReader
API 与readAsArrayBuffer
读取器上将结果传递给的方法AV.Player.fromBuffer
.
这里的JSFiddle https://jsfiddle.net/6yenx6vc/对于那个例子。
(抱歉,由于某种原因,示例在 SO 片段中不起作用,所以我必须使用 JSFiddle )
HTML
<input type="file" id="file-input" />
<button>play</button>
CSS
input {
display: block;
margin-bottom: 6px;
}
button {
display: none
}
JavaScript
var $fileInput = $('#file-input');
var $btn = $('button');
var isPlaying = false;
var player;
function readFile(e) {
if(window.FileReader) {
var file = e.target.files[0];
var reader = new FileReader();
if (file && file.type.match('audio/flac')) {
reader.readAsArrayBuffer(file);
} else {
console.log('Please add a flac file.')
}
reader.onloadend = function (e) {
player = AV.Player.fromBuffer(reader.result)
$btn.show()
$btn.on('click', function() {
if(isPlaying) {
player.pause();
isPlaying = false;
this.textContent = 'play'
} else {
player.play();
isPlaying = true;
this.textContent = 'pause'
}
})
}
}
}
$fileInput.on('change', readFile)