1

audioplayer を直接指すリンクを開くと、すべてのブラウザで再生されます。Audioplayer は、swf を指す埋め込み要素であるネストされた div にあります。

しかし、それを書いていくつかのページに埋め込むと、プレーヤーは表示されますが、IE8 では再生されません。IE9 を含む他のすべての主要なブラウザーで動作します。

ところで、Safariでは機能しませんでしたが、十分に大きな値で幅と高さを割り当てると、Safariでは修正されましたが、IE8では修正されませんでした。

<iframe width="500" height="50" src="http://localhost/getAudio?id=DB04DDA8-C7C9-46E6-B0B3-7A0E0B5C9A55" frameBorder="0" scrolling="no">

<html class=" js no-flexbox no-canvas no-canvastext no-webgl no-touch no-geolocation postmessage no-websqldatabase no-indexeddb hashchange no-history draganddrop no-websockets no-rgba no-hsla no-multiplebgs no-backgroundsize no-borderimage no-borderradius no-boxshadow no-textshadow no-opacity no-cssanimations no-csscolumns no-cssgradients no-cssreflections no-csstransforms no-csstransforms3d no-csstransitions fontface generatedcontent no-video no-audio localstorage sessionstorage no-webworkers no-applicationcache no-svg no-inlinesvg no-smil no-svgclippaths" xmlns="http://www.w3.org/1999/xhtml">

<HEAD>
<STYLE class=iepp-printshim media=print></STYLE>
<TITLE>Bethoven symphony # 9</TITLE>
<META charset=utf-8>
<SCRIPT type=text/javascript src="/celenium/scripts/libs/jquery-latest.js"></SCRIPT>


<SCRIPT type=text/javascript src="/celenium/scripts/ClientCompatibility.js"></SCRIPT>

<STYLE type=text/css>BODY {
    PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
</STYLE>
</HEAD>
<BODY>
<DIV id=asset01>
<SCRIPT type=text/javascript>
            $.ajax({
                url: '/celenium/audioplayer_html5/getPlayer.asp?o=DB04DDA8-C7C9-46E6-B0B3-7A0E0B5C9A55',
                dataType: 'jsonp',
                cache: true,
                jsonpCallback: 'sdlaudioplayer',
                success: function (data) {
                    $('#asset01').append($(data.html));
                }
            });    
        </SCRIPT>
<LINK rel=stylesheet href="http://localhost/celenium/audioplayer_html5/css/defaultplayer.css" media=screen>
<DIV id=sdlaudioplayer class=player_container>
<DIV class=player_metabar></DIV>
<DIV class=player_controls>
<DIV style="DISPLAY: block" class=player_controls_play jQuery1707536265854468271="1"></DIV>
<DIV style="DISPLAY: none" class=player_controls_pause jQuery1707536265854468271="2"></DIV>
<DIV style="DISPLAY: none" class=player_controls_prev jQuery1707536265854468271="3"></DIV>
<DIV style="DISPLAY: none" class=player_controls_next jQuery1707536265854468271="4"></DIV>
<DIV style="WIDTH: 297px; DISPLAY: block" class=player_controls_scrubber jQuery1707536265854468271="5">
<DIV class=player_controls_scrubber_loading jQuery1707536265854468271="13">
<DIV class=player_controls_scrubber_loaded></DIV>
<DIV class=player_controls_scrubber_playhead></DIV></DIV></DIV>
<DIV style="DISPLAY: block" class=player_controls_timing jQuery1707536265854468271="6"><SPAN class=player_controls_timing_position>0:00</SPAN> / <SPAN class=player_controls_timing_total>0:00</SPAN></DIV>
<DIV style="DISPLAY: block" class=player_controls_volume jQuery1707536265854468271="7">
<DIV class=player_controls_volume_mute jQuery1707536265854468271="8"></DIV>
<DIV class=player_controls_volume_slider jQuery1707536265854468271="12">
<DIV style="WIDTH: 50%" class=player_controls_volume_marker jQuery1707536265854468271="11"></DIV>
<DIV style="LEFT: 28px" class=player_controls_volume_knob jQuery1707536265854468271="10"></DIV></DIV>
<DIV class=player_controls_volume_max jQuery1707536265854468271="9"></DIV></DIV></DIV></DIV>
<DIV id=sm2-container class="high_performance movieContainer swf_loaded"><!-- SM2 flash goes here -->
<DIV></DIV>
<DIV class=sm2-object-box>
<OBJECT id=sm2movie title="JS/Flash audio component (SoundManager 2)" codeBase="download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 data="/celenium/audioplayer_html5/swf/soundmanager2_flash9.swf" width=auto type=application/x-shockwave-flash height=auto></OBJECT></DIV></DIV></DIV></BODY>
4

1 に答える 1

1

IE8 は、オーディオ タグやビデオ タグなどの HTML5 機能の多くをサポートしていないため、最新のブラウザーとは見なされません。

このHTML5 チュートリアルサイトには、Object タグを使用して IE8 でオーディオをサポートする方法の例があります。以下の例を参照してください。

<audio controls>
    <source src="vincent.mp3" type="audio/mpeg"/>
    <source src="vincent.ogg" type="audio/ogg"/>
    <object type="application/x-shockwave-flash" data="media/OriginalMusicPlayer.swf" 
      width="225" height="86"> 
       <param name="movie" value="media/OriginalMusicPlayer.swf"/>
       <param name="FlashVars" value="mediaPath=vincent.mp3" /> 
    </object> 
</audio>

Flash を使用してプレーヤーをロードするため、これには IE8 クライアントに Flash がインストールされている必要があることに注意してください。

クライアントに Flash がインストールされていない場合は、ダウンロード リンクを提供し、ユーザーがオペレーティング システムのデフォルト プレーヤーを使用してオーディオ ファイルを再生できるようにするだけで済みます。

<audio controls>
    <source src="vincent.mp3" type="audio/mpeg"/>
    <source src="vincent.ogg" type="audio/ogg"/>
    <object type="application/x-shockwave-flash" data="media/OriginalMusicPlayer.swf"  
      width="225" height="86"> 
        <param name="movie" value="media/OriginalMusicPlayer.swf"/>
        <param name="FlashVars" value="mediaPath=vincent.mp3" /> 
    </object> 
    <a href="vincent.mp3">Download this lovely song and wish you all the best!</a>
</audio>

補足として、直面している問題は、HTML に html5 doctype がなく、検証エラーが含まれているという事実に起因する可能性が非常に高いです。W3C 仕様を確認することをお勧めします。すべての属性には引用符が必要だと思います。

多くのブラウザは、HTML で構文やセマンティックの間違いを犯すことを得意としていますが、これらの検証の問題が戻ってきて悩まされることがあります。W3C バリデータに対してサイトを実行し、 IE8 がマークアップを正しく解釈するのを妨げている HTML エラーがないことを確認することを強くお勧めします。

于 2012-04-08T20:47:21.963 に答える