0

我正在尝试使用 PERMANENT STORAGE 在用户的本地文件系统中使用 HTML5 Filesystem API 编写 mp3。我有一个拖放区域,其中一个事件触发 dataTransfer.files。但是如何使用 SoundManager 2 加载文件以在浏览器中播放 mp3?

Soundmanager 需要一个路径作为 createSound 的参数:

  url: [
    {type:'audio/mp3',url:'/path/to/play.php?song=123'}
  ]

我使用 Filesystem API 成功读取的文件的路径是什么?

以下成功运行:

var files = evt.dataTransfer.files; // FileList object.

// files is a FileList of File objects. List some properties.
//var output = [];
for (var i = 0, f; f = files[i]; i++) {
  audio.playlist.push(escape(f.name));  // saving filenames in array for playlist
  writeFile(fs.root,files[i]);

}
for (var i = 0, f; f = files[i]; i++) {
 fs.root.getFile(escape(files[i].name), {create: false}, function(fileEntry) {
       alert('A file ' + fileEntry.name + ' was read successfully.');
}, errorHandler);


}

后来我打电话给 Soundmanager 2(它只在我将相对文件路径传递给它时才有效) -

    audio.nowPlaying = soundManager.createSound({
        id: 'aSound',
        url: audio.playlist[playlistId],
        autoLoad: true,
        volume: 20,

        // ...with a recursive callback when play completes
        onfinish: function(){
            playlistId ++;
            playAudio(playlistId);
        }
    })
4

0 回答 0