3

要素がクリックされたときに再生する HTML5 オーディオ プレーヤーがあります。すべてのデスクトップ ブラウザで正常に動作します。iPadでは動かないだけです。

iOSは自動再生をサポートしておらず、ユーザーが再生を開始する必要があることを読みました...私が知る限り、これはまさにクリック関数内にコードを配置することで私が行っていることですか?

    var item = $('.type-aud'),
        path = item.attr('file'),
        html = '<audio controls><source src="'+path+'" type="audio/mpeg" class="audio"></audio><span class="play"></span>',
        playerClass = item.find('.audio');

        if (!playerClass.hasClass('audio')) {
            item.append(html);          
        } 

        item.click(function() { 
            var player = item.find('audio');

            if (!player.hasClass('playing')) {
                $(player).addClass('playing').trigger("play").next().addClass('pause').removeClass('play');
            } else {
                $(player).removeClass('playing').trigger("pause").next().removeClass('pause').addClass('play');
            }
        });

デバッグ用にコントロールを有効にしました。ネイティブ コントロールで [再生] を押すと、動作が開始されます...

ありがとう

4

1 に答える 1

1

trigger最近似たような作業をしていましたが、イベントを使用してオーディオを再生できないことがわかりました。

例:私が試していた

$('#btn').click(function(){
    myAudioControl.play();
});

$('#btn').trigger('click');

このコードは、要素を物理的にクリックする必要があるため、iOS5では機能しません。

ここに良い解決策があります問題の解決策を見つけるために私が協力したiOS5HTML5アプリでjavascriptイベントを介してサウンドを再生します。

基本的に、ユーザーがボタンをクリックしたときにオーディオにサイレントmp3ファイルを再生させてから、オーディオを更新しましたsrc。次に、任意のトリガーまたはイベントを介してオーディオファイルを動的に再生できます。

于 2013-01-30T15:23:16.570 に答える