SoundManager2 onid3()没有触发

我正在构建一个简单的Javascript点唱机,使用最新的SoundManager2进行音频播放,以本地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解决方案。 谢谢, 亚当     
已邀请:
对于任何可靠的答案,这个问题可能过于深奥,所以我决定调查SM2库之外的可能的Javascript解决方案。 我开始使用Nihilogic的库来读取ID3v1标签(在http://blog.nihilogic.dk/2008/08/reading-id3-tags-with-javascript.html),但转移到antimatter15的js-id3v2库(https:/ /github.com/antimatter15/js-id3v2)因为它可以读取ID3v2标签。调整所提供示例中的代码我已成功解析了通过
<input>
控件加载MP3时所需的主要标签。     
对于本地文件,我说的是“用户本地文件”(而不是“服务器”本地文件)我在id3v2.js上取得了一些成功 要获得ID3,SM2需要mp3主机上的跨域,如果它是另一个域。 此外,我在使用Soundcloud时遇到了困难,因为他们将MP3重定向到动态Amazon S3存储......所以我必须为客户最终URL做一个PHP脚本,然后SM2可以获得正确的crossdomain.xml(检查https://getsatisfaction.com/ schillmania / topics / displays_waveformdata_of_soundcloud_hosted_track_prompts_securityerror_error_2122) 问题是S3链接和本地用户文件(blob)都有短暂的到期延迟。 祝好运 !     

要回复问题请先登录注册