JavaScript / HTML5音频:播放用户通过Android Chrome中的文件选择器加载的mp3文件

问题描述 投票:4回答:2

我正在尝试创建一个站点,用户可以在该站点上从其PC或平板电脑中选择本地音频文件,并且(无需将文件上传到服务器)使用HTML5音频标签播放该文件(用户应该单击该按钮来播放它,则不需要自动播放功能)。尽管该浏览器应支持所需的所有功能,但我无法在Android版本的Chrome中实现这一目标。在桌面版的Chrome中可以使用。

我尝试了不同的方法来加载该文件:

  1. 通过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(); };
    
  2. 通过URL.createObjectURL-在此处编辑:http://liveweave.com/4y84XV第二个与第一个非常相似-只有playFile函数是这样的:

    function playFile(file) {
        player.src = URL.createObjectURL(file);
    }
    

这些例子有什么问题?还有其他方法可以达到预期效果吗?我将不胜感激任何提示或想法。谢谢。

javascript android html html5-audio
2个回答
1
投票

[您可能想尝试查看Audio API是否适合您(在HTML5 <audio>之前存在)。它可以直接读取ArrayBuffer s>

例如,加载WAV

很简单:

0
投票

HTML:

© www.soinside.com 2019 - 2024. All rights reserved.