35

タイトルはほとんどそれをすべて言います。ページに到着すると自動的に再生を開始するビデオがあります。

HTMLコードにmuted="muted"を入れました。そして、ここに奇妙な部分があります。コントロールを見ると、明らかにミュートされていますが、音楽はまだ再生されており、聞くことができます。W3SchoolsでHTML5ビデオの例を見ても、ミュートされた状態で音楽が再生されます。

たとえばjQueryを介してこれをバイパスする方法はありますか?ビデオにミュートを固定するjQuery行がありますが、効果はありません。

使用されているHTMLコードは次のとおりです。

<video id="video" width="640px" height="350px" autoplay="autoplay" loop="loop" controls="controls" muted="muted">
            <source src="intouchables.f4v" type="video/mp4">
            Your browser does not support the video tag.
        </video>

あなたが私を助けてくれることを願っています。jQueryの行は次のとおりです。

$( "video")。prop('muted'、true);

前もって感謝します。

4

10 に答える 10

45

Angularの場合、[muted] ="'muted'"を試すことができます。これは私のために機能しています。

<video id="video" style="width:100%; height:100%" autoplay [muted]="'muted'" loop>
  <source src="./../../assets/video/model-video.mp4" type="video/mp4">
</video>
于 2019-05-01T18:13:59.967 に答える
38

タグmuted内で定義されたときに属性が誤動作する理由については、完全にはわかりません。videoしかし、これはあなたができることです:

muted="muted"まず、動画タグから属性を削除します。単純に次のように保管してください:

<video id="video" width="640px" height="350px" autoplay="autoplay" loop="loop" controls="controls">
    <source src="intouchables.f4v" type="video/mp4">
    Your browser does not support the video tag.
</video>

次に、ページの読み込み時にビデオをミュートする関数を定義します。

window.onload = function () {
    var element = document.getElementById('video');
    element.muted = "muted";
}

これを確認しましたが、機能します。

于 2013-01-02T07:27:22.873 に答える
28

私の答えには本当の新しい答えはありません-この質問を最新のものにしようとしているだけで、私がちょうどしたように人々がこれで一日を無駄にするのを避けたいと思っています。

私が知る限り(特にこの質問は非常に古いため)、ビデオがページに動的に追加されたときに機能しなかっmutedたことがわかります。そして、動作しないので、それからも動作しません。mutedmuted autoplay

何が起こるかというと、ブラウザがページの読み込みに関して特定の決定を下すということだと思います。非常に奇妙な理由で、追加されたページの後半にあるビデオは、mutedプロパティがある場合でもミュートされません。これはChromeのバグであり、Safariでは発生していないと思いますが、今のところ問題が発生しているようです。

自動再生/ミュートに関するGoogleのブログエントリはわずか1年前のものであり、次の洞察を提供します。

Chromeの自動再生ポリシーは単純です。

  • ミュートされた自動再生は常に許可されます。
  • 次の場合、サウンドによる自動再生が許可されます。
    • ユーザーがドメインを操作しました(クリック、タップなど)。
    • デスクトップで、ユーザーのメディアエンゲージメントインデックスのしきい値を超えました。これは、ユーザーが以前に音声付きのビデオを再生したことを意味します。
    • モバイルでは、ユーザーは自分のホーム画面にサイトを追加しました。
  • 上位のフレームは、自動再生の許可をiframeに委任して、音声付きの自動再生を許可できます。

欠けている主要なものが1つだけあります!

  • 'muted' HTML属性は、ビデオが初期ロード時にHTMLに存在する場合にのみ有効になります。これは、「ミュートされた自動再生」ビデオにも適用されます。

それで、これの影響は何ですか:

  • 音声のないビデオをプログラムで再生する場合は、最初にミュートする必要があります。したがって、動的ビデオをページに追加する場合video.muted = trueは、DOMに追加した後(または再生する直前)に明示的に設定する必要があります。
  • プログラムで実行しようとする場合video.play()(たとえば、誰かがミュートされたビデオを過ぎてスクロールダウンし、それを再生したい場合)、最初にビデオをミュートする必要があります。

私はAngularでこれに遭遇し、テンプレートを使用しているという事実、またはAngularに関連するものに関連していると想定して、あまりにも多くの時間を費やしました。

StackBlitzでテストアプリを作成しました。// video.muted = true正しく機能させるには、行のコメントを解除する必要があります。

https://stackblitz.com/edit/angular-ze4t9y

実現すべき他の重要なことは次のとおりです。

  • ビデオに実際に音が出ていない場合でも、ミュートする必要があります。必要に応じて、「バニー」ビデオでテストしてください。
  • ブログで概説されている新しい「メディアエンゲージメント」ルールは、ページを操作することになるため、ページをテストするときに混乱する可能性があります。このエンゲージメントルールをリセットするには、ブラウザを閉じるか、シークレットモードで新しいウィンドウを開く必要があります(ブログエントリを参照)。

ユーザーが最初にページに「エンゲージ」していないときにミュートされていないビデオを再生しようとすると、ブラウザに表示されるエラーを以下に示します。ミュートされていない動画に対してこのメ​​ッセージが表示されない場合は、ページを操作したためにChromeが動画の再生を許可している可能性があります。

ここに画像の説明を入力してください

そして最後に、Angular(すべてが動的に追加される)を使用している場合、以下はビデオをミュートするために機能します:

 @ViewChild('bunnyVideo', { read: ElementRef }) bunnyVideo: ElementRef;

次に、それを再生したいとき:

 const video: HTMLVideoElement = this.bunnyVideo.nativeElement;

 // explicitly mute it...
 video.muted = true;

 // ...before attempting to play
 video.play().catch((err) => {
    alert('video error ' + err);
 });
于 2018-08-08T20:29:50.787 に答える
13

これは私にとってはうまくいきます。

<video oncanplay="this.muted=true" id="video" width="640px" height="350px" autoplay="autoplay" loop="loop" controls="controls">
            <source src="intouchables.f4v" type="video/mp4">
            Your browser does not support the video tag.
</video>
于 2019-02-07T12:00:36.417 に答える
6

このミュートはChrome64では機能しなくなったようです。63でも機能します。

于 2018-01-29T22:21:15.883 に答える
4
<video preload= "true" autoplay = "autoplay" loop = "loop" muted>
    <source src = "video/Real-Estate.mp4" type = "video/mp4">
</video>
于 2015-02-02T15:21:47.757 に答える
1

jQueryの代わりにHTML5を介して直接ミュートするにはvolume="0"、ビデオタグ内で使用することもできます。

<video preload="true" autoplay="" volume="0" poster="img/example.jpg">
于 2015-04-20T03:21:25.980 に答える
0

ビデオを制作するときは、オーディオコーデックがAACに設定されていることを確認してください。デフォルト設定がAC3であるOpenShotを使用して同じ問題が発生しました。

于 2019-01-18T06:52:42.130 に答える
0

html5の使用:

<video controls loop muted height="" width=""  >

  <source src="" type="video/(put format here ex .mp4)" />
<source src="" type="video/(put another format of same video here if there is one ex .wav)" />
Your browser does not support the HTML5 element.
</video>

これはw3cに適しています。

1

于 2020-09-09T22:11:35.823 に答える
0
<video class="" autoplay loop [muted] = "'muted'">
    <source src= "video url/video path" type = "video/mp4">
</video>

// これを試して。デバイスで正常に動作しています。あなたのビデオがサウンドブラウザ(グーグル)を持っているとき、ビデオをブロックしようとします。そのため、ビデオは自動再生されません。したがって、オーディオをミュートしてみてください。ミュートされただけで言及することによって、それは私にはうまくいきませんでした。そこで、バインディング方法を試しました。今、それは私とうまく働いています。これを一度試してみることをお勧めします

于 2021-10-29T12:15:08.500 に答える