我正在使用最新的 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 解决方案。
谢谢,
亚当