カスタム<audio>
プレーヤーのプラグインを使用していましたが、すべて問題ありませんでした。私は Mac OSX 10.8.2 の Safari ブラウザーで作業していましたが、他のブラウザーでプロジェクトをテストすることに決めたら、非常に奇妙なことが起こりました。簡単に言えば、プラグインは<audio>
ページ内のタグを見つけて、それらを別のカスタム マークアップに変更することになっています。Safari では正常に動作しますが、Firefox と Opera では動作しないようです
Firefox と Opera には次の問題があります。オーディオ ソースがサポートされていない形式の場合、基本的に古いブラウザのフォールバックである別の (ミニ) プレーヤーを作成するプラグインの一部があります。どちらも非常に最新のブラウザであるため、このフォールバック プレーヤーを表示します。
プラグインはもともとhttp://tympanus.net/codrops/2012/12/04/responsive-touch-friendly-audio-player/から来ていますが、いくつかの変更を加えました。
canPlayType = function( type )
{
var audioElement = document.createElement( 'audio' );
return !!( audioElement.canPlayType &&
audioElement.canPlayType( 'audio/' + type.toLowerCase() + ';' ).replace( /no/, '' ) );
};
そしてオリジナルは
canPlayType = function( file )
{
var audioElement = document.createElement( 'audio' );
return !!( audioElement.canPlayType &&
audioElement.canPlayType( 'audio/' + file.split( '.' ).pop().toLowerCase() + ';' ).replace( /no/, '' ) );
};
そしてもう一つの小さな変化
else if( canPlayType( 'mp3' ) ) isSupport = true;
オリジナルはどこですか
else if( canPlayType( audioFile ) ) isSupport = true;
これらの変更は、自動的に検出するのではなく、src 内のファイルが mp3 であることを指定するために行われました (ローカル ファイルではなく、soundcloud API によって生成された URL を使用しているため)。このような変更がどのようにブラウザーに影響を与え、プラグインが機能しなくなるのかわかりません。関連する多くのコード ファイルがあるため、ここにすべてを投稿する代わりに、ここですべてを自分で確認できるようにドロップボックス フォルダーを作成しました。別のブラウザーで index.html ファイルを試して、私が話している問題を確認できます。 https://www.dropbox.com/sh/xutioz3hyrybvz3/f0-528WzH0
編集: jsbin http://jsbin.com/unupov/1/editでライブ デモも作成したので、さまざまなブラウザーでプレーヤーがどのように動作するかを確認できます。
編集 2: chrome の問題は無視してください。user20140268のおかげで修正されました。