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