我正在尝试创建一个站点,用户可以在该站点上从其PC或平板电脑中选择本地音频文件,并且(无需将文件上传到服务器)使用HTML5音频标签播放该文件(用户应该单击该按钮来播放它,则不需要自动播放功能)。尽管该浏览器应支持所需的所有功能,但我无法在Android版本的Chrome中实现这一目标。在桌面版的Chrome中可以使用。
我尝试了不同的方法来加载该文件:
通过JavaScript FileReader-您可以在这里摆弄它:http://liveweave.com/2kOWoz
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
playFile(files[0]);
}
function playFile(file) {
var freader = new FileReader();
freader.onload = function(e) {
player.src = e.target.result;
};
freader.readAsDataURL(file);
}
player = document.getElementById('player');
document.getElementById('files').addEventListener('change', handleFileSelect, false);
document.getElementById('play').onclick = function(){ player.play(); };
通过URL.createObjectURL-在此处编辑:http://liveweave.com/4y84XV第二个与第一个非常相似-只有playFile函数是这样的:
function playFile(file) {
player.src = URL.createObjectURL(file);
}
这些例子有什么问题?还有其他方法可以达到预期效果吗?我将不胜感激任何提示或想法。谢谢。
[您可能想尝试查看Audio API是否适合您(在HTML5 <audio>
之前存在)。它可以直接读取ArrayBuffer
s>
例如,加载WAV
很简单:HTML: