【发布时间】:2011-01-16 14:32:14
【问题描述】:
我正在使用最新的 SoundManager2 构建一个简单的 Javascript 点唱机,用于音频播放,本地 MP3 文件是源。我已经对文件加载和播放进行了排序,目前我正在尝试访问这些 MP3 文件的 ID3 信息,但是 onid3() 回调没有触发。我正在使用 Flash 并已验证文件中存在 ID3 信息。下面是我对 onid3() 的实现:
function playNextSongInQueue()
{
// Get the first element of the songQueue array
var nextSongInQueue = songQueue.shift();
// Start playback from the queue
var jukeboxTune = soundManager.createSound({
id: 'currentTune',
url: 'audio/' + nextSongInQueue.name,
onload: function() {
this.play();
},
onid3: function() {
alert('ID3 present!');
},
onfinish: function() {
this.destruct(); // Destroy this sound on finish
songFinish(); // Run the songFinish() function, so decide what to do next
}
});
jukeboxTune.load();
//jukeboxTune.play(); // The jukebox running!
songPlaying = true; // Set songPlaying flag
updateSongQueueDisplay(); // Refresh the song queue display (for debug)
return nextSongInQueue.name;
}
其他回调工作正常,但 onid3() 警报永远不会出现。我什至将音频播放的加载和播放部分分开,看看是否有帮助。 SoundManager 发现 onid3() 存在是因为它将 usePolicyFile 切换为 true - 鉴于 MP3 是本地的,我假设我不需要担心跨域 XML 文件。
谁能解释为什么这不起作用?我在谷歌上搜索了一些可行的实现,但没有找到任何有用的东西。我看过 Jacob Seidelin 的纯 Javascript 解决方法,但如果可能的话,我宁愿坚持使用 SoundManager,也不愿使用 PHP 解决方案。
谢谢,
亚当
【问题讨论】:
-
我没有答案,但是 +1 似乎是一个很棒的音频框架——我没有听说过 SoundManager,这正是我正在工作的项目所需要的开。
标签: javascript mp3 id3 soundmanager2