2011-01-16 4 views
3

ローカルのMP3ファイルをソースとして、オーディオ再生用に最新のSoundManager2を使用して簡単なJavascriptジュークボックスを構築しています。私はファイルの読み込みと並べ替えをしていますが、現時点ではこれらのMP3ファイルのID3情報にアクセスしようとしていますが、onid3()コールバックは起動していません。私はFlashを使用しており、ID3情報がファイルに存在することを確認しました。下)(onid3の私の実装です:SoundManager2 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は、usePolicyFileをtrueに切り替えるため、onid3()が存在することを示します。MP3がローカルであると見ると、クロスドメインXMLファイルについて心配する必要はないと仮定しています。

これはなぜ機能していないのですか?私はGoogleが動作する実装を探し求めましたが、何も役立たずに出てきました。私はJacob Seidelinの純粋なJavascriptの回避策を見てきましたが、可能であればSoundManagerに固執し、PHPソリューションを使用したくないと思います。

おかげで、

アダム

+0

私は答えがありませんが、素晴らしいオーディオフレームワークのようなものは+1です - 私はSoundManagerのことを聞いていなかった、それは私が取り組んでいるプロジェクトに必要なものです。 –

答えて

1

は、この問題はおそらく、任意の固体の答えはあまりにも難解であるので、私はSM2ライブラリ外の可能なJavascriptの解決策を検討することにしました。

私は(http://blog.nihilogic.dk/2008/08/reading-id3-tags-with-javascript.htmlで)はID3v1タグを読み取るためのNihilogicのライブラリを始めたが、それはID3v2のタグを読み取ることができるようantimatter15年代のJS-ID3v2のライブラリー(https://github.com/antimatter15/js-id3v2)に移動しました。提供された例のコードを適合させる私は、<input>コントロールを介してMP3が読み込まれたときに必要なメインタグを正常に解析することができました。ローカルファイルの場合

0

、私はID3を取得するためにid3v2.js

といくつかの成功を得る「ユーザーローカルファイル」(ない「サーバー」ローカルファイル)の話、SM2は、mp3のホスト上でクロスドメインが必要別のドメインであれば プラス私彼らは、動的Amazon S3のストレージにMP3をリダイレクトするようてSoundcloudで困難に直面している...ので、私はゲスト最終URLにPHPスクリプトを実行する必要があり、その後、SM2は、適切なcrossdomain.xmlを得ることができます(https://getsatisfaction.com/schillmania/topics/displaying_waveformdata_of_soundcloud_hosted_track_prompts_securityerror_error_2122を確認してください)

問題はS3リンクであり、ローカルユーザーファイル(BLOB)の有効期限は短いです。

幸運を祈る!

関連する問題