Hướng dẫn how do i autoplay audio in html? - làm cách nào để tự động phát âm thanh trong html?

❮ Thẻ HTML

Thí dụ

Một tệp âm thanh sẽ tự động bắt đầu phát:

& nbsp; & nbsp; & nbsp; Trình duyệt của bạn không hỗ trợ các yếu tố âm thanh.
 
 
  Your browser does not support the audio element.

Hãy tự mình thử »


Định nghĩa và cách sử dụng

Thuộc tính

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 là thuộc tính Boolean.

Khi có mặt, âm thanh sẽ tự động bắt đầu phát ngay khi có thể làm như vậy mà không cần dừng.

Lưu ý: Trình duyệt crom không cho phép tự động phát trong hầu hết các trường hợp. Tuy nhiên, autoplay bị tắt tiếng luôn được phép. Chromium browsers do not allow autoplay in most cases. However, muted autoplay is always allowed.

Thêm

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
7 sau khi
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
8 để cho tệp âm thanh của bạn bắt đầu phát tự động (nhưng bị tắt tiếng).


Hỗ trợ trình duyệt

Các số trong bảng chỉ định phiên bản trình duyệt đầu tiên hỗ trợ đầy đủ thuộc tính.

Thuộc tính
tự chạy4.0 9.0 3.5 4.0 11.5

Cú pháp


❮ Thẻ HTML


Tự động bắt đầu phát lại âm thanh (hoặc video có bản nhạc âm thanh) ngay lập tức khi tải trang có thể là một bất ngờ không mong muốn đối với người dùng. Mặc dù autoplay của phương tiện truyền thông phục vụ một mục đích hữu ích, nó nên được sử dụng cẩn thận và chỉ khi cần thiết. Để cung cấp cho người dùng quyền kiểm soát điều này, các trình duyệt thường cung cấp các hình thức chặn tự động phát khác nhau. Trong hướng dẫn này, chúng tôi sẽ đề cập đến chức năng autoplay trong các API âm thanh web và phương tiện khác nhau, bao gồm một cái nhìn tổng quan ngắn gọn về cách sử dụng autoplay và cách làm việc với các trình duyệt để xử lý tự động chặn một cách duyên dáng.

Chặn tự động không được áp dụng cho các phần tử

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
9 khi phương tiện nguồn không có bản nhạc âm thanh hoặc nếu bản nhạc âm thanh bị tắt tiếng. Phương tiện với một bản nhạc âm thanh hoạt động được coi là có thể nghe được và việc chặn Autoplay áp dụng cho chúng. Phương tiện không nghe được không bị ảnh hưởng bởi việc chặn tự động.audible, and autoplay blocking applies to them. Inaudible media are not affected by autoplay blocking.

Chặn tự động và tự động phát

Thuật ngữ Autoplay đề cập đến bất kỳ tính năng nào khiến âm thanh bắt đầu phát mà không cần người dùng yêu cầu phát lại đó bắt đầu. Điều này bao gồm cả việc sử dụng các thuộc tính HTML cho phương tiện AutoPlay cũng như người dùng mã JavaScript để bắt đầu phát lại bên ngoài bối cảnh xử lý đầu vào của người dùng.autoplay refers to any feature that causes audio to begin to play without the user specifically requesting that playback begin. This includes both the use of HTML attributes to autoplay media as well as the user of JavaScript code to start playback outside the context of handling user input.

Điều đó có nghĩa là cả hai điều sau đây đều được coi là hành vi tự động phát và do đó phải tuân theo chính sách chặn tự động phát của trình duyệt:

<audio src="/music.mp3" autoplay>audio>

Các tính năng web và API sau đây có thể bị ảnh hưởng bởi việc chặn Autoplay:

  • Các yếu tố HTML
    <video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
    
    0 và
    <audio id="musicplayer" autoplay>
      <source src="/music/chapter1.mp3" />
    audio>
    
    9
  • API âm thanh web

Từ quan điểm của người dùng, một trang web hoặc ứng dụng tự phát bắt đầu gây ồn ào mà không có cảnh báo có thể bị chói tai, bất tiện hoặc không phù hợp. Do đó, các trình duyệt thường chỉ cho phép tự động phát xảy ra thành công trong các trường hợp cụ thể.

Tính khả dụng tự động

Theo nguyên tắc chung, bạn có thể cho rằng phương tiện truyền thông sẽ chỉ được phép tự động phát nếu ít nhất một trong những điều sau đây là đúng:

  • Âm thanh bị tắt hoặc âm lượng của nó được đặt thành 0
  • Người dùng đã tương tác với trang web (bằng cách nhấp, khai thác, nhấn phím, v.v.)
  • Nếu trang web đã được đưa vào danh sách cho phép; Điều này có thể tự động xảy ra nếu trình duyệt xác định rằng người dùng tham gia vào phương tiện thường xuyên hoặc thủ công thông qua các tùy chọn hoặc các tính năng giao diện người dùng khác
  • Nếu chính sách tính năng Autoplay được sử dụng để cấp hỗ trợ Autoplay cho
    <video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
    
    2 và tài liệu của nó.

Nếu không, phát lại có thể sẽ bị chặn. Các tình huống chính xác dẫn đến việc chặn và các chi tiết cụ thể về cách các trang web được liệt kê cho phép thay đổi từ trình duyệt đến trình duyệt, nhưng trên là những hướng dẫn tốt để thực hiện.

Để biết chi tiết, hãy xem các chính sách chơi tự động cho Google Chrome và WebKit.

Lưu ý: Đặt một cách khác, phát lại bất kỳ phương tiện nào bao gồm âm thanh thường bị chặn nếu phát lại được khởi tạo theo chương trình trong một tab chưa có bất kỳ tương tác người dùng nào. Các trình duyệt cũng có thể chọn chặn trong các trường hợp khác. Put another way, playback of any media that includes audio is generally blocked if the playback is programmatically initiated in a tab which has not yet had any user interaction. Browsers may additionally choose to block under other circumstances.

Bây giờ chúng tôi đã đề cập đến việc tự động phát là gì và những gì có thể ngăn chặn tự động được phép, chúng tôi sẽ xem xét cách trang web hoặc ứng dụng của bạn có thể tự động phát phương tiện khi tải trang, cách phát hiện khi tự động phát không xảy ra và các mẹo để đối phó Khi autoplay bị từ chối bởi trình duyệt.

Thuộc tính autoplay

Cách đơn giản nhất để tự động phát nội dung là thêm thuộc tính

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 vào phần tử
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
0 hoặc
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
9 của bạn. Điều này đặt thuộc tính
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 trên phần tử thành
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
7 và khi
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 là
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
7, phương tiện truyền thông sẽ tự động bắt đầu phát càng sớm càng tốt sau khi xảy ra sau đây:

  • Trang được phép sử dụng chức năng tự động phát
  • Phần tử đã được tạo trong quá trình tải trang
  • Đủ truyền thông đã được nhận để bắt đầu phát lại và tiếp tục chơi cho đến cuối phương tiện truyền thông mà không bị gián đoạn, giả sử không có thay đổi đáng kể về hiệu suất mạng hoặc băng thông.

Ví dụ: Thuộc tính autoplay

Một phần tử

<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
0 sử dụng thuộc tính
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 có thể trông như thế này:

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>

Ví dụ 2: Phát hiện lỗi tự động

Nếu bạn dựa vào AutoPlay cho bất cứ điều gì quan trọng, hoặc nếu lỗi Autoplay sẽ ảnh hưởng đến ứng dụng của bạn theo bất kỳ cách nào, có lẽ bạn sẽ muốn có thể biết khi Autoplay không bắt đầu. Thật không may, trong trường hợp thuộc tính

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6, việc nhận ra việc có bắt đầu tự động hay không là khó khăn hay không. Không có sự kiện nào được kích hoạt khi Autoplay thất bại. Cũng không có ngoại lệ ném hoặc gọi lại mà bạn có thể thiết lập hoặc thậm chí là một lá cờ trên phần tử truyền thông cho bạn biết nếu autoplay hoạt động. Tất cả những gì bạn thực sự có thể làm là kiểm tra một vài giá trị và đưa ra một dự đoán có giáo dục về việc liệu Autoplay có hoạt động hay không.

Một cách tiếp cận tốt hơn, nếu bạn có thể điều chỉnh hướng bạn nhìn vào mọi thứ, thay vào đó là dựa vào việc biết rằng phát lại phương tiện truyền thông đã bắt đầu thành công, thay vì khi nó không bắt đầu. Bạn có thể làm điều này một cách dễ dàng, bằng cách lắng nghe sự kiện

let hasPlayed = false;
function handleFirstPlay(event) {
  if (!hasPlayed) {
    hasPlayed = true;

    const vid = event.target;

    vid.onplay = null;

    // Start whatever you need to do after first playback has started
  }
}
3 được bắn vào phần tử truyền thông.

Sự kiện

let hasPlayed = false;
function handleFirstPlay(event) {
  if (!hasPlayed) {
    hasPlayed = true;

    const vid = event.target;

    vid.onplay = null;

    // Start whatever you need to do after first playback has started
  }
}
3 được gửi cả khi các phương tiện truyền thông được nối lại sau khi bị tạm dừng và khi tự động phát xảy ra. Điều đó có nghĩa là lần đầu tiên sự kiện
let hasPlayed = false;
function handleFirstPlay(event) {
  if (!hasPlayed) {
    hasPlayed = true;

    const vid = event.target;

    vid.onplay = null;

    // Start whatever you need to do after first playback has started
  }
}
3 được bắn, bạn biết phương tiện của bạn đang được bắt đầu lần đầu tiên sau khi trang được mở.

Hãy xem xét HTML này cho một yếu tố truyền thông:

<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>

Ở đây chúng tôi có một phần tử

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
9 có thuộc tính
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 được đặt, với trình xử lý sự kiện
let hasPlayed = false;
function handleFirstPlay(event) {
  if (!hasPlayed) {
    hasPlayed = true;

    const vid = event.target;

    vid.onplay = null;

    // Start whatever you need to do after first playback has started
  }
}
8 được thiết lập; Sự kiện được xử lý bởi một hàm gọi là
let hasPlayed = false;
function handleFirstPlay(event) {
  if (!hasPlayed) {
    hasPlayed = true;

    const vid = event.target;

    vid.onplay = null;

    // Start whatever you need to do after first playback has started
  }
}
9, nhận được là sự kiện đầu vào
let hasPlayed = false;
function handleFirstPlay(event) {
  if (!hasPlayed) {
    hasPlayed = true;

    const vid = event.target;

    vid.onplay = null;

    // Start whatever you need to do after first playback has started
  }
}
3.

let hasPlayed = false;
function handleFirstPlay(event) {
  if (!hasPlayed) {
    hasPlayed = true;

    const vid = event.target;

    vid.onplay = null;

    // Start whatever you need to do after first playback has started
  }
}
9 Trông như thế này:

let hasPlayed = false;
function handleFirstPlay(event) {
  if (!hasPlayed) {
    hasPlayed = true;

    const vid = event.target;

    vid.onplay = null;

    // Start whatever you need to do after first playback has started
  }
}

Sau khi nhận được tham chiếu đến phần tử video từ

document.querySelector("video").play();
3 của đối tượng
document.querySelector("video").play();
2, trình xử lý
let hasPlayed = false;
function handleFirstPlay(event) {
  if (!hasPlayed) {
    hasPlayed = true;

    const vid = event.target;

    vid.onplay = null;

    // Start whatever you need to do after first playback has started
  }
}
8 của phần tử được đặt thành
document.querySelector("video").play();
5. Điều này sẽ ngăn chặn bất kỳ sự kiện
let hasPlayed = false;
function handleFirstPlay(event) {
  if (!hasPlayed) {
    hasPlayed = true;

    const vid = event.target;

    vid.onplay = null;

    // Start whatever you need to do after first playback has started
  }
}
3 nào trong tương lai được chuyển đến người xử lý. Điều đó có thể xảy ra nếu video bị người dùng tạm dừng và tiếp tục hoặc tự động bởi trình duyệt khi tài liệu nằm trong tab nền.

Tại thời điểm này, trang web hoặc ứng dụng của bạn có thể bắt đầu bất cứ điều gì cần làm mà phụ thuộc vào video đã được khởi động.

Lưu ý: Cách tiếp cận này không phân biệt giữa autoplay và người dùng bắt đầu phát lại thủ công. This approach doesn't differentiate between autoplay and the user starting playback manually.

Phương thức play ()

Thuật ngữ "autoplay" cũng đề cập đến các kịch bản trong đó một tập lệnh cố gắng kích hoạt phát lại phương tiện bao gồm âm thanh, bên ngoài bối cảnh xử lý sự kiện đầu vào của người dùng. Điều này được thực hiện bằng cách gọi phương thức

document.querySelector("video").play();
7 của phần tử truyền thông.

Lưu ý: Bạn nên sử dụng thuộc tính

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 bất cứ khi nào có thể, bởi vì hỗ trợ cho các tùy chọn tự động được phổ biến rộng rãi hơn đối với thuộc tính
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 so với các phương tiện chơi phương tiện khác. Nó cũng cho phép trình duyệt chịu trách nhiệm bắt đầu phát lại, cho phép nó tối ưu hóa thời gian của điều đó diễn ra.
It is strongly recommended that you use the
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 attribute whenever possible, because support for autoplay preferences are more widespread for the
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 attribute than for other means of playing media automatically. It also lets the browser take responsibility for starting playback, letting it optimize the timing of that taking place.

Ví dụ: Phát video

Ví dụ đơn giản này chơi phần tử

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
9 đầu tiên được tìm thấy trong tài liệu.
document.querySelector("video").play();
7 sẽ không cho phép phát lại bắt đầu trừ khi tài liệu có quyền tự động phát phương tiện.

document.querySelector("video").play();

Ví dụ: Xử lý các thất bại ()

Việc phát hiện sự thất bại của phương tiện truyền thông tự động khi bạn sử dụng phương thức

document.querySelector("video").play();
7 sẽ dễ dàng hơn nhiều để bắt đầu nó.
document.querySelector("video").play();
7 trả về một
let startPlayPromise = videoElem.play();

if (startPlayPromise !== undefined) {
  startPlayPromise
    .then(() => {
      // Start whatever you need to do only after playback
      // has begun.
    })
    .catch((error) => {
      if (error.name === "NotAllowedError") {
        showPlayButton(videoElem);
      } else {
        // Handle a load or playback error
      }
    });
}
4 được giải quyết một khi phương tiện truyền thông bắt đầu thành công và bị từ chối khi phát lại không bắt đầu (chẳng hạn như nếu Autoplay bị từ chối). Khi Autoplay thất bại, bạn có thể sẽ muốn cung cấp một cách để người dùng nói với trình duyệt theo cách thủ công để yêu cầu người dùng cấp phép phát phương tiện.

Bạn có thể sử dụng mã như thế này để hoàn thành công việc:

let startPlayPromise = videoElem.play();

if (startPlayPromise !== undefined) {
  startPlayPromise
    .then(() => {
      // Start whatever you need to do only after playback
      // has begun.
    })
    .catch((error) => {
      if (error.name === "NotAllowedError") {
        showPlayButton(videoElem);
      } else {
        // Handle a load or playback error
      }
    });
}

Điều đầu tiên chúng tôi làm với kết quả của

document.querySelector("video").play();
7 là đảm bảo rằng đó không phải là
let startPlayPromise = videoElem.play();

if (startPlayPromise !== undefined) {
  startPlayPromise
    .then(() => {
      // Start whatever you need to do only after playback
      // has begun.
    })
    .catch((error) => {
      if (error.name === "NotAllowedError") {
        showPlayButton(videoElem);
      } else {
        // Handle a load or playback error
      }
    });
}
6. Chúng tôi kiểm tra điều này bởi vì trong các phiên bản trước của đặc tả HTML,
document.querySelector("video").play();
7 đã không trả về giá trị. Trả lại một lời hứa cho phép bạn xác định thành công hoặc thất bại của hoạt động đã được thêm vào gần đây. Kiểm tra
let startPlayPromise = videoElem.play();

if (startPlayPromise !== undefined) {
  startPlayPromise
    .then(() => {
      // Start whatever you need to do only after playback
      // has begun.
    })
    .catch((error) => {
      if (error.name === "NotAllowedError") {
        showPlayButton(videoElem);
      } else {
        // Handle a load or playback error
      }
    });
}
6 ngăn mã này không bị lỗi trên các phiên bản trình duyệt web cũ hơn.

Nếu lời hứa được trả lại bởi

document.querySelector("video").play();
7 được giải quyết mà không có lỗi, mệnh đề
let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
0 được chạy và có thể bắt đầu bất cứ điều gì cần phải thực hiện khi tự động phát triển.

Sau đó, chúng tôi thêm một người xử lý

let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
1 vào lời hứa. Điều này xem xét
let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
2 của lỗi để xem đó là
let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
3. Điều này chỉ ra rằng phát lại không thành công do vấn đề về quyền, chẳng hạn như autoplay bị từ chối. Nếu đó là trường hợp, chúng ta nên trình bày giao diện người dùng để cho người dùng bắt đầu phát lại thủ công; Điều đó được xử lý ở đây bởi một chức năng
let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
4.

Bất kỳ lỗi nào khác được xử lý khi thích hợp.

Nếu bạn muốn bắt đầu phát video sau khi tương tác đầu tiên với trang,

let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
5 có thể được sử dụng để đạt được điều này:

let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);

Tự động sử dụng API âm thanh web

Trong API âm thanh web, một trang web hoặc ứng dụng có thể bắt đầu phát âm thanh bằng phương thức

let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
6 trên nút nguồn được liên kết với
let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
7. Làm như vậy bên ngoài bối cảnh xử lý một sự kiện đầu vào của người dùng phải tuân theo các quy tắc tự động phát.

Chính sách tính năng Autoplay

Ngoài việc quản lý và kiểm soát phía trình duyệt đối với chức năng autoplay được mô tả ở trên, một máy chủ web cũng có thể thể hiện sự sẵn sàng cho phép autoplay hoạt động. Chỉ thị

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 của HTTP
let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
8 được sử dụng để kiểm soát tên miền nào, nếu có, có thể được sử dụng để tự động phát. Theo mặc định, chính sách tính năng
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 được đặt thành
Feature-Policy: autoplay 'self'
1 (bao gồm cả các ký tự trích dẫn đơn), cho thấy rằng AutoPlay được cho phép khi chúng được lưu trữ trên cùng một miền với tài liệu.

Bạn cũng có thể chỉ định

Feature-Policy: autoplay 'self'
2 để vô hiệu hóa hoàn toàn autoplay,
Feature-Policy: autoplay 'self'
3 để cho phép autoplay từ tất cả các miền hoặc một hoặc nhiều nguồn gốc cụ thể mà phương tiện có thể tự động phát. Những nguồn gốc này được phân tách bởi các ký tự không gian.

Lưu ý: Chính sách tính năng được chỉ định áp dụng cho tài liệu và mỗi

<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
2 lồng nhau trong đó, trừ khi các khung đó bao gồm
Feature-Policy: autoplay 'self'
5, đặt chính sách tính năng mới cho khung đó và tất cả các khung được lồng trong đó.
The specified feature policy applies to the document and every
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
2 nested within it, unless those frames include an
Feature-Policy: autoplay 'self'
5, which sets a new feature policy for that frame and all frames nested within it.

Khi sử dụng thuộc tính

Feature-Policy: autoplay 'self'
5 trên
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
2 để chỉ định chính sách tính năng cho khung đó và các khung hình lồng nhau của nó, bạn cũng có thể chỉ định giá trị ____78 để cho phép tự động hóa phương tiện từ cùng một miền theo quy định của thuộc tính
Feature-Policy: autoplay 'self'
9 của khung.

Ví dụ: Chỉ cho phép autoplay từ miền của tài liệu

Để sử dụng tiêu đề

let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
8 để chỉ cho phép phương tiện tự động phát từ nguồn gốc của tài liệu:

Feature-Policy: autoplay 'self'

Để làm điều tương tự cho một

<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
2:

<iframe src="mediaplayer.html" allow="autoplay 'src'"> iframe>

Ví dụ: Cho phép chế độ tự động phát và toàn màn hình

Thêm quyền API toàn màn hình vào ví dụ trước đó dẫn đến tiêu đề

let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
8 như sau nếu truy cập toàn màn hình được cho phép bất kể tên miền; Một hạn chế miền có thể được thêm vào cũng như cần thiết.

Feature-Policy: autoplay 'self'; fullscreen

Các quyền tương tự, được nghiền bằng cách sử dụng thuộc tính

Feature-Policy: autoplay 'self'
5 của phần tử ____22, trông như thế này:

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
0

Ví dụ: Cho phép tự động phát từ các nguồn cụ thể

Tiêu đề

let playAttempt = setInterval(() => {
  videoElem
    .play()
    .then(() => {
      clearInterval(playAttempt);
    })
    .catch((error) => {
      console.log("Unable to play the video, User has not interacted yet.");
    });
}, 3000);
8 để cho phép phương tiện được phát từ cả tên miền riêng của tài liệu (hoặc ____ 22) và
<iframe src="mediaplayer.html" allow="autoplay 'src'"> iframe>
7 trông như thế này:

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
1

Một

<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
2 có thể được viết để chỉ định rằng chính sách tự động này nên được áp dụng cho chính nó và bất kỳ khung con nào sẽ được viết như vậy:

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
2

Ví dụ: Vô hiệu hóa tự động

Đặt chính sách tính năng

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
6 thành
Feature-Policy: autoplay 'self'
2 vô hiệu hóa hoàn toàn tự động cho tài liệu hoặc
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
2 và tất cả các khung lồng nhau. Tiêu đề HTTP là:

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
3

Sử dụng thuộc tính

Feature-Policy: autoplay 'self'
5 của ____ 22:

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
4

Thực hành tốt nhất

Mẹo và khuyến nghị thực hành tốt nhất để giúp bạn tận dụng tối đa việc làm việc với Autoplay được cung cấp ở đây.

Xử lý lỗi Autoplay với các điều khiển phương tiện

Một trường hợp sử dụng phổ biến cho autoplay là tự động bắt đầu phát một video clip đi cùng với một bài viết, quảng cáo hoặc xem trước chức năng chính của trang. Đối với các video Autoplay như thế này, bạn có hai tùy chọn: Không có bản nhạc âm thanh hoặc có bản nhạc âm thanh nhưng định cấu hình phần tử

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
9 để tắt tiếng âm thanh theo mặc định, như thế này:

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
5

Phần tử video này được cấu hình để bao gồm các điều khiển người dùng (thường phát/tạm dừng, chà qua dòng thời gian, điều khiển âm lượng và tắt tiếng của video); Ngoài ra, do thuộc tính

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
7 được bao gồm và thuộc tính
Feature-Policy: autoplay 'self'; fullscreen
6 được yêu cầu cho autoplay trong Safari, video sẽ tự động phát nhưng với âm thanh bị tắt tiếng. Tuy nhiên, người dùng có tùy chọn về việc kích hoạt lại âm thanh bằng cách nhấp vào nút bật tiếng trong các điều khiển.

Tùy chọn cấu hình trình duyệt

Trình duyệt có thể có sở thích kiểm soát cách xử lý tự động phát hoặc cách xử lý chặn tự động phát. Ở đây, bất kỳ sở thích nào như vậy có thể có ý nghĩa hoặc tầm quan trọng đặc biệt đối với bạn khi một nhà phát triển web được liệt kê. Chúng bao gồm bất kỳ có thể hỗ trợ thử nghiệm hoặc gỡ lỗi cũng như bất kỳ điều gì có thể được đặt theo cách mà bạn cần chuẩn bị để xử lý.

Firefox

Feature-Policy: autoplay 'self'; fullscreen
7

Một sở thích boolean chỉ định liệu thuộc tính

Feature-Policy: autoplay 'self'; fullscreen
8 có được tiếp xúc với web hay không. Điều này hiện là
Feature-Policy: autoplay 'self'; fullscreen
9 theo mặc định (ngoại trừ trong các bản dựng hàng đêm, trong đó nó là
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
7 theo mặc định). Nếu đây là
Feature-Policy: autoplay 'self'; fullscreen
9, thuộc tính
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
02 bị thiếu trong giao diện
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
03 và do đó không có mặt trên các phần tử
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
0 hoặc
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
9.

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
06

Sở thích boolean này, nếu

<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
7, cho phép các tập lệnh nền của phần mở rộng trình duyệt đến phương tiện âm thanh tự động phát. Đặt giá trị này thành
Feature-Policy: autoplay 'self'; fullscreen
9 vô hiệu hóa khả năng này. Giá trị mặc định là
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
7.

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
10

Một sở thích boolean mà nếu

<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
7 (mặc định) cho phép phương tiện âm thanh hiện đang bị tắt tiếng tự động. Nếu điều này đã được thay đổi thành
Feature-Policy: autoplay 'self'; fullscreen
9, phương tiện truyền thông có bản nhạc âm thanh sẽ không được phép phát ngay cả khi bị tắt tiếng.

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
13

Một sở thích boolean cho biết có nên áp dụng chặn tự động chặn cho API âm thanh web hay không. Mặc định là

Feature-Policy: autoplay 'self'; fullscreen
9, ngoại trừ vào ban đêm, đó là
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
7.

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
16

Một ưu tiên số nguyên chỉ định liệu cấu hình trên mỗi miền cho hỗ trợ autoplay theo mặc định (

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
17), bị chặn (
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
18) hoặc sử dụng nhanh (
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
19). Giá trị mặc định là
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
17.

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
21 (chỉ xây dựng hàng đêm)

Một ưu tiên Boolean kiểm soát việc phát hiện ra các cử chỉ của người dùng có được phép ghi đè cài đặt của

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
16 hay không. Nếu
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
16 không được đặt thành
<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
17 (được cho phép AutoPlay theo mặc định), ưu tiên này là
<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
7 cho phép AutoPlay của phương tiện theo dõi âm thanh nếu trang này được kích hoạt bởi cử chỉ người dùng và phương tiện không thể nghe được.

<audio id="musicplayer" autoplay>
  <source src="/music/chapter1.mp3" />
audio>
26

Một sở thích boolean cho biết liệu phát lại phương tiện có bị chặn hay không khi bắt đầu trên tab nền. Giá trị mặc định,

<video src="myvideo.mp4" autoplay onplay="handleFirstPlay(event)">video>
7, có nghĩa là ngay cả khi có sẵn, Autoplay sẽ không diễn ra cho đến khi một tab được đưa lên nền trước. Điều này ngăn chặn tình huống mất tập trung trong đó một tab bắt đầu phát âm thanh và người dùng không thể tìm thấy tab trong số tất cả các tab và cửa sổ của họ.

Xem thêm

Làm cách nào để Autoplay Audio trong HTML không có điều khiển?

Thẻ âm thanh cho phép bạn nhúng nội dung âm thanh trong các trang HTML của mình.Theo mặc định, trình duyệt không hiển thị bất kỳ điều khiển nào cho phần tử này.Điều đó có nghĩa là âm thanh sẽ chỉ phát nếu được đặt thành autoplay (nhiều hơn về điều này sau) và người dùng không thể thấy cách dừng nó hoặc điều khiển âm lượng hoặc di chuyển qua đường đua.By default the browser does not show any controls for this element. Which means the audio will play only if set to autoplay (more on this later) and the user can't see how to stop it, or control the volume or move through the track.

Audio Autoplay Loop HTML là gì?

Một tệp âm thanh sẽ tự động bắt đầu phát::

Tôi có thể chơi âm thanh trong HTML không?

Phần tử HTML được sử dụng để phát tệp âm thanh trên trang web..