วิธีทำให้เสียงเล่นอัตโนมัติบน Chrome


94

เล่นอัตโนมัติด้วยเสียงที่ทำงานใน Mozilla, Microsoft edge และ google chrome เก่าเช่นกัน แต่ไม่ได้อยู่ใน google chrome ใหม่ พวกเขาบล็อกการเล่นอัตโนมัติ มีวิธีใดบ้างที่จะทำให้เสียงเล่นอัตโนมัติใน Google Chrome


7
ความจริงที่ว่า Google ทำเช่นนี้เป็นเรื่องไร้สาระ พวกเขาเพียงแค่พูดว่า "ไม่มีเพลงสำหรับเกมของคุณเว้นแต่ผู้ใช้จะคลิก Play Music" ยอมรับไม่ได้ โกรธมาก!
Hobbes

2
@Hobbes เห็นด้วย อย่างน้อยก็ควรมีข้อยกเว้น ตามที่ฉันพูดถึงโปสเตอร์อื่นฉันมีหน้า "MUSIC" ซึ่งมีลิงก์ของไซต์ "mymusic.html" ซึ่งคุณสามารถเข้าถึงได้โดยมีลิงก์ / ปุ่มที่มีป้ายกำกับอย่างชัดเจน "เพลงของฉัน" เท่านั้นที่จะมีคนไปที่นั่นและเป็น ทำให้ประหลาดใจหรือรำคาญกับการเล่นเพลงตัวอย่างที่นั่นโดยเฉพาะอย่างยิ่งกับปุ่ม STOP MUSIC "ตำแหน่งคงที่" ที่ชัดเจนนโยบายนี้เป็นกรณีของการปฏิบัติที่ไม่เหมาะสมมากเกินไป
Randy

คำตอบ:


104

โซลูชัน # 1

ทางออกของฉันที่นี่คือการสร้างไฟล์ iframe

<iframe src="audio/source.mp3" allow="autoplay" style="display:none" id="iframeAudio">
</iframe> 

และaudioติดแท็กเช่นกันสำหรับเบราว์เซอร์ที่ไม่ใช่ Chrome

<audio autoplay loop  id="playAudio">
    <source src="audio/source.mp3">
</audio>

และในไฟล์ script

  var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
  if (!isChrome){
      $('#iframeAudio').remove()
  }
  else {
      $('#playAudio').remove() // just to make sure that it will not have 2x audio in the background 
  }

โซลูชัน # 2:

นอกจากนี้ยังมีวิธีแก้ปัญหาอื่นสำหรับสิ่งนี้ตาม @Leonard

สร้างสิ่งiframeที่ไม่ได้เล่นอะไรเพียงเพื่อทริกเกอร์การเล่นอัตโนมัติในการโหลดครั้งแรก

<iframe src="silence.mp3" allow="autoplay" id="audio" style="display: none"></iframe>

แหล่งที่ดีสำหรับไฟล์ mp3 เงียบ. mp3

จากนั้นเล่นไฟล์เสียงจริงของคุณอย่างสบายใจ

<audio id="player" autoplay loop>
    <source src="audio/source.mp3" type="audio/mp3">
</audio>

โดยส่วนตัวแล้วฉันชอบโซลูชัน # 2เนื่องจากเป็นแนวทางที่สะอาดกว่าโดยไม่ต้องพึ่งพา JavaScript มากนัก

อัปเดตสิงหาคม 2019

โซลูชัน # 3

เป็นอีกทางเลือกหนึ่งที่เราสามารถใช้ได้ <embed>

สำหรับFirefox ดูเหมือนว่าการเล่นเสียงอัตโนมัติกำลังทำงานอยู่ดังนั้นเราจึงไม่จำเป็นต้องใช้<embed>องค์ประกอบนี้เพราะมันจะสร้างเสียงสองครั้งที่ทำงาน

// index.js
let audioPlaying = true,
    backgroundAudio, browser;
browser = navigator.userAgent.toLowerCase();
$('<audio class="audio1" src="audio.mp3" loop></audio>').prependTo('body');
if (!browser.indexOf('firefox') > -1) {
    $('<embed id="background-audio" src="audio.mp3" autostart="1"></embed>').prependTo('body');
    backgroundAudio = setInterval(function() {
        $("#background-audio").remove();
        $('<embed id="background-audio" src="audio.mp3"></embed>').prependTo('body');
    }, 120000); // 120000 is the duration of your audio which in this case 2 mins.
}

นอกจากนี้หากคุณมีเหตุการณ์สลับสำหรับเสียงของคุณอย่าลืมลบ<embed>องค์ประกอบที่สร้างขึ้นสำหรับเสียง

หมายเหตุ:หลังจากการสลับของคุณมันจะเริ่มต้นใหม่ตั้งแต่ต้นเนื่องจาก<embed>ถูกลบไปแล้วและ<audio>องค์ประกอบจะเล่นได้ตามปกติในตอนนี้

$(".toggle-audio").on('click', function(event) {
    audioPlaying = !audioPlaying;
    $("#background-audio").remove();

    clearInterval(backgroundAudio);
    if (audioPlaying){
        $(".audio1").play();
        // play audio 
    }
    else {
        $(".audio1").pause();
    }

และตอนนี้อย่าลืมซ่อนสิ่งเหล่านี้<audio>และ<embed>องค์ประกอบต่างๆ

audio, embed {
    position: absolute;
    z-index: -9999;
}

หมายเหตุ: diplay: noneและvisibility: hiddenจะทำให้<embed>องค์ประกอบไม่ทำงาน


คุณสร้างลูปเสียงได้อย่างไร
Kwarrtz

1
โซลูชันที่ 2 ใช้ได้ผลสำหรับฉัน Sidenote: หากคุณทำงานกับเว็บและ Phonegap ในเวลาเดียวกัน Phonegap ไม่ต้องการวิธีแก้ปัญหานี้และมันก็ค่อนข้างแย่ ดังนั้นหากคุณมี codebase ทั่วไปสำหรับเว็บและ Phonegap อย่าลืมหาวิธีใช้วิธีแก้ปัญหานี้บนเว็บเท่านั้น
Ignacio Segura

2
ลิงก์ไปยังไฟล์ความเงียบจะตายดังนั้นฉันพบแฟ้มเงียบบางส่วนอื่น ๆ บน GitHub: github.com/anars/blank-audio ฉันใช้1-second-of-silence.mp3สำหรับโปรเจ็กต์ของฉัน แต่ไฟล์ใด ๆ ในคอลเลคชันนี้จะใช้งานได้ฉันเดา
Travis

13
ดูเหมือนจะถูกจับเมื่อ Chrome 76
mightyiam

3
ใช่ไม่ได้ผลอีกต่อไป (ถ้ามันใช้งานได้ในอดีต)
Yulian

28

มีเคล็ดลับที่ดีมากในการใช้ฟังก์ชันเล่นอัตโนมัติของแท็กเสียงในโครเมี่ยม

เพิ่ม

<iframe src="silence.mp3" allow="autoplay" id="audio"></iframe>

ในขณะที่silence.mp3ความเงียบเพียง 0.5 วินาที

นี้

<audio id="player" autoplay controls><source src="0.mp3" type="audio/mp3"></audio>

ใช้งานได้ในภายหลัง

Chrome แจ้งว่ามีการเล่นเสียงและให้สิทธิ์ในการเล่นอัตโนมัติในแท็กเสียง


5
ตกลงแม้ว่าวิธีนี้จะได้ผล แต่ก็ยังรู้สึกเหมือนกำลังใช้ประโยชน์จากข้อบกพร่องหรืออย่างน้อยที่สุดก็คือพฤติกรรมที่ไม่ได้ตั้งใจ ฉันคิดว่าจะมีคนรายงานเรื่องนี้กับ Google ดังนั้นฉันจะไม่วางใจว่ามันใช้งานได้นาน พบว่าดี!
Neil Bryson

4
นอกหัวข้อเล็กน้อย แต่ความเงียบของคุณ. mp3 ค่อนข้างใหญ่ที่ 36.7k. ลองสิ่งนี้ (216 ไบต์) - s3-eu-west-1.amazonaws.com/neilbryson.net.random/silence.mp3
Neil Bryson

3
ลิงค์ Sile.mp3 ตายแล้ว. คุณสามารถสร้างของคุณเอง
idbrii

1
@Toniq แน่นอนขอโทษทุกคน - s3-eu-west-1.amazonaws.com/omegasquadron.neilbryson.net/…
Neil Bryson

1
ใช่พวกเขากำลังทำอยู่ ... ไม่ทำงานอีกต่อไปทั้งใน Firefox หรือ Chrome
Stefan Reich

15

ในเดือนเมษายน 2018 นโยบายการเล่นอัตโนมัติของ Chrome มีการเปลี่ยนแปลง:

"นโยบายการเล่นอัตโนมัติของ Chrome นั้นเรียบง่าย:

  • อนุญาตให้เล่นอัตโนมัติแบบปิดเสียงเสมอ

อนุญาตให้เล่นอัตโนมัติพร้อมเสียงหาก:

  • ผู้ใช้มีปฏิสัมพันธ์กับโดเมน (คลิกแตะ ฯลฯ )
  • บนเดสก์ท็อปขีด จำกัด Media Engagement Index ของผู้ใช้ถูกข้ามไปซึ่งหมายความว่าผู้ใช้เคยเล่นวิดีโอพร้อมเสียงมาก่อน
  • บนอุปกรณ์เคลื่อนที่ผู้ใช้ได้เพิ่มไซต์ลงในหน้าจอหลักของตนเอง

นอกจากนี้

  • เฟรมด้านบนสามารถมอบสิทธิ์การเล่นอัตโนมัติให้กับ iframe เพื่ออนุญาตให้เล่นอัตโนมัติพร้อมเสียง "

ไซต์สำหรับนักพัฒนาซอฟต์แวร์ของ Chrome มีข้อมูลเพิ่มเติมรวมถึงตัวอย่างการเขียนโปรแกรมซึ่งสามารถพบได้ที่นี่: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes


3
คุณกำลังบอกว่าไม่มีวิธีใดที่เราจะเล่นเสียงอัตโนมัติในเบราว์เซอร์ Chrome ได้?
Akshay Rathod

นอกจากนี้ยังมีตัวเลือกการอนุญาตในเบราว์เซอร์ Chrome ใน Android ซึ่งตอนนี้ผู้ใช้สามารถเลือกที่จะอนุญาตให้เล่นเสียงอัตโนมัติได้
zeta

8

เพียงเพิ่มสคริปต์ขนาดเล็กนี้ตามที่แสดงในhttps://developers.google.com/web/updates/2017/09/autoplay-policy-changes#webaudio

<head>
<script>
window.onload = function() {
  var context = new AudioContext();
}
</script>
</head>

กว่าจะได้ผลตามที่คุณต้องการ:

<audio autoplay>
      <source src="hal_9000_sorry_dave.mp3">
</audio>

คุณช่วยส่งซอสำหรับการใช้งานนี้ให้ฉันได้ไหม มันจะมีประโยชน์มาก
Vikash

5
มันไม่ทำงานอีกต่อไป? ได้รับข้อความนี้: "ไม่อนุญาตให้ AudioContext เริ่มทำงานต้องกลับมาทำงานต่อ (หรือสร้าง) หลังจากท่าทางสัมผัสของผู้ใช้ในหน้าเว็บdeveloper.google.com/web/updates/2017/09/… "
thdoan

ทำงานบน Chrome 81.0.4044.138 บน mac 👍
Mosh Feu

5

อย่างน้อยคุณสามารถใช้สิ่งนี้:

document.addEventListener('click', musicPlay);
function musicPlay() {
    document.getElementById('ID').play();
    document.removeEventListener('click', musicPlay);
}

เพลงจะเริ่มต้นเมื่อผู้ใช้คลิกที่ใดก็ได้ในหน้า

นอกจากนี้ยังลบ EventListener ทันทีดังนั้นหากคุณใช้การควบคุมเสียงผู้ใช้สามารถปิดเสียงหรือหยุดชั่วคราวได้และเพลงจะไม่เริ่มขึ้นอีกครั้งเมื่อเขาคลิกที่อื่น ..


สิ่งนี้ฉันเชื่อว่ามาถูกทางแล้วในการปฏิบัติตามนโยบายใหม่ที่กำหนดให้ผู้ใช้โต้ตอบบางส่วนเพื่อเล่นเพลง ฉันได้เพิ่มสิ่งนี้ลงในกิจกรรมการสัมผัสที่ฉันได้เพิ่มไว้แล้วสำหรับเบราว์เซอร์บนมือถือและเหตุการณ์การเลื่อนดู น่าเสียดายที่นโยบาย "ไม่เล่น ()" ดูเหมือนจะไม่อนุญาตให้การเลื่อนเมาส์วีลนับเป็นการโต้ตอบของผู้ใช้ แต่ฉันก็กำลังดำเนินการอยู่เช่นกัน สิ่งนี้คือหน้าของฉันเป็นหน้า MUSIC ที่เรียกว่า "mymusic.html" ซึ่งคุณจะต้องทำตามปุ่ม MUSIC ที่มีป้ายกำกับอย่างดี ดังนั้นหากเคยมีหน้าเพื่อแสดงให้เห็นว่า 'เล่น' เมื่อโหลด 'สิ่งนั้นควรจะเป็น!
Randy

@ แรนดี้ฉันอยู่ในสถานการณ์ที่คล้ายกันมากฉันกำลังทำงานกับเพจเพลงและต้องการใช้การเล่นอัตโนมัติ การเพิ่มแอตทริบิวต์เล่นอัตโนมัติทำงานไม่สอดคล้องกันมาก - รหัสเดียวกันจะทำงานเป็นครั้งคราว แต่ไม่เสมอไป ฉันไม่มีข้อผิดพลาดคอนโซลหรือเครือข่าย คุณแก้ไขสถานการณ์ของคุณหรือไม่?
Lazarus Rising

@LazarusRising - แม้ว่าทั้งหมดนี้ดูเหมือนจะเริ่มต้นด้วยเบราว์เซอร์โทรศัพท์ แต่ฉันสังเกตเห็นว่าเบราว์เซอร์เดสก์ท็อปเวอร์ชันใหม่ ๆ ปฏิเสธการเล่นอัตโนมัติด้วยเช่นกัน ฉันต้องบอกว่าฉันพอใจกับความจำเป็นที่จะต้องมีเหตุการณ์ที่เกิดขึ้นจากการโต้ตอบของผู้ใช้ในการเริ่มเพลง ในความเป็นจริงแม้แต่ฉันในฐานะผู้เขียนเพจฉันก็เริ่มพบว่าตัวเองรู้สึกรำคาญที่จะไปที่เพจของฉันและมีเพลงเริ่มขึ้นเพียงเพราะฉันแตะหน้าจอ ฉันเริ่มเห็นเหตุผลว่าทำไมการเล่นอัตโนมัติจึงยุติลง และตั้งแต่เริ่มเกิดขึ้นในระดับสากลฉันไม่รู้สึกว่าไซต์ของฉันเป็นเว็บไซต์เดียวที่ไม่สามารถทำได้
Randy

Chrome ละเมิดการบังคับให้เล่น
Gabriel Petersson

2

เบราว์เซอร์ได้เปลี่ยนความเป็นส่วนตัวเป็นการเล่นวิดีโอหรือเสียงอัตโนมัติเนื่องจากโฆษณาที่น่ารำคาญ คุณสามารถหลอกล่อด้วยโค้ดด้านล่าง

คุณสามารถใส่เสียงเงียบลงใน iframe ได้

<iframe src="youraudiofile.mp3" type="audio/mp3" allow="autoplay" id="audio" style="display:none"></iframe>
<audio autoplay>
    <source src="youraudiofile.mp3" type="audio/mp3">
</audio>

เพียงเพิ่ม iframe ที่มองไม่เห็นโดยมี. mp3 เป็นแหล่งที่มาและอนุญาตให้ = "เล่นอัตโนมัติ" ก่อนองค์ประกอบเสียง เป็นผลให้เบราว์เซอร์ถูกหลอกให้เริ่มไฟล์เสียงที่ตามมา หรือเล่นวิดีโออัตโนมัติที่ไม่ได้ปิดเสียง


2

คุณสามารถใช้ (.autoplay = true;) ดังต่อไปนี้ (ทดสอบบน Chrome Desktop):

<audio id="audioID" loop> <source src="path/audio.mp3"  type="audio/mp3"></audio>

<script>
var myaudio = document.getElementById("audioID").autoplay = true;
</script>

หากคุณต้องการเพิ่มปุ่มหยุด / เล่น:

<button onclick="play()" type="button">playbutton</button>
<button onclick="stop()" type="button">stopbutton</button>

<audio id="audioID" autoplay loop> <source src="path/audio.mp3"  type="audio/mp3"> 
</audio>

<script>
var myaudio = document.getElementById("audioID");

function play() { 
return myaudio.play(); 
};

function stop() {
return myaudio.pause(); 
};
</script>

หากคุณต้องการหยุด / เล่นเป็นปุ่มเดียว:

<button onclick="PlayStop()" type="button">button</button>


<audio id="audioID" autoplay loop> <source src="path/audio.mp3"  type="audio/mp3"> 
</audio>

<script>
var myaudio = document.getElementById("audioID");

function PlayStop() { 
return myaudio.paused ? myaudio.play() : myaudio.pause();
};
</script>

หากคุณต้องการแสดงหยุด / เล่นบนปุ่มเดียวกัน:

<button onclick="PlayStop()" type="button">Play</button>


<audio id="audioID" autoplay loop> <source src="path/audio.mp3"  type="audio/mp3"> 
</audio>

<script>
var myaudio = document.getElementById("audioID");

function PlayStop() { 
if (elem.innerText=="Play") {
    elem.innerText = "Stop";
}
else {
    elem.innerText = "Play";
}
return myaudio.paused ? myaudio.play() : myaudio.pause();
};`
</script>

ในบางเบราว์เซอร์เสียงอาจทำงานไม่ถูกต้องดังนั้นเคล็ดลับให้ลองเพิ่ม iframe ก่อนโค้ดของคุณ:

<iframe src="dummy.mp3" allow="autoplay" id="audio" style="display:none"></iframe>

<button onclick="PlayStop()" type="button">Play</button>


<audio id="audioID" autoplay loop> <source src="path/audio.mp3"  type="audio/mp3"> 
</audio>

<script>
var myaudio = document.getElementById("audioID");

function button() { 
if (elem.innerText=="Play") {
    elem.innerText = "Stop";
}
else {
    elem.innerText = "Play";
}
return myaudio.paused ? myaudio.play() : myaudio.pause();
};
</script>

ดูเหมือนจะไม่ทำงานใน Chrome เวอร์ชัน 85.0.4183.83 (รุ่นอย่างเป็นทางการ) (64 บิต)
MC9000

1

วันนี้ฉันทะเลาะกับเรื่องนี้และฉันแค่อยากจะเพิ่มความรู้เล็ก ๆ น้อย ๆ ที่ฉันค้นพบในการสนทนา

อย่างไรก็ตามฉันได้ออกจากสิ่งนี้:

<iframe src="silence.mp3" allow="autoplay" id="audio" style="display:none"></iframe>
<audio id="audio" autoplay>
  <source src="helloworld.mp3">
</audio>

นี้:

<audio id="myAudio" src="helloworld.mp3"></audio>
<script type="text/javascript">
  document.getElementById("myAudio").play();
</script>

และในที่สุดนี่คือ "วิธีแก้ปัญหา" ที่ค่อนข้างอยู่นอกขอบเขตหากคุณต้องการสร้างสิ่งของคุณเอง (ซึ่งเราทำ):

<script src='https://code.responsivevoice.org/responsivevoice.js'></script>
<input onclick='responsiveVoice.speak("Hello World");' type='button' value='Play' />

การค้นพบที่ฉันได้สร้างขึ้นและสิ่งที่ตลกอย่างแท้จริง (แปลกประหลาดไร้สาระ?) คือในกรณีของอดีตทั้งสองคุณสามารถเอาชนะระบบได้โดยการให้ f5 ห้ำหั่นที่เหมาะสม หากคุณกดรีเฟรชซ้ำ ๆ อย่างรวดเร็ว (บาง 5-10 ครั้งควรทำเคล็ดลับ) เสียงจะเล่นอัตโนมัติจากนั้นจะเล่นสองสามครั้งเมื่อมีการรีเฟรชซิกเกิลเพียงเพื่อกลับไปสู่หนทางที่ชั่วร้าย สุดยอด!

ในประกาศจาก Google ระบุว่าสำหรับไฟล์สื่อที่จะเล่น "โดยอัตโนมัติ" จะต้องมีการโต้ตอบระหว่างผู้ใช้และไซต์ ดังนั้น "วิธีแก้ปัญหา" ที่ดีที่สุดที่ฉันได้จัดการมาจนถึงตอนนี้คือการเพิ่มปุ่มเพื่อแสดงการเล่นไฟล์ที่น้อยกว่าอัตโนมัติ แต่มีเสถียรภาพ / เชื่อถือได้มากกว่ามาก


3
การใช้การโต้ตอบกับผู้ใช้ไม่ใช่การเล่นอัตโนมัติ
mightyiam

0

ฉันใช้ pixi.js และ pixi-sound.js เพื่อให้เล่นอัตโนมัติใน chrome และ firefox

<script>

            PIXI.sound.Sound.from({
            url: 'audios/tuto.mp3',
            loop:true,
            preload: true,
            loaded: function(err, sound) {
                    sound.play();

            document.querySelector("#paused").addEventListener('click', function() {
            const paused = PIXI.sound.togglePauseAll();

            this.className = this.className.replace(/\b(on|off)/g, '');
            this.className += paused ? 'on' : 'off';

            });
            }
            });

</script>

HTML:

<button class="btn1 btn-lg off" id="paused">
    <span class="glyphicon glyphicon-pause off"></span>
    <span class="glyphicon glyphicon-play on"></span>
</button>

มันยังใช้งานได้บนอุปกรณ์มือถือ แต่ผู้ใช้ต้องแตะที่ใดที่หนึ่งบนหน้าจอเพื่อเรียกเสียง



0

แก้ไขอุณหภูมิ

$(document).on('click', "#buttonStarter", function(evt)
{
var context = new AudioContext();
document.getElementById('audioPlayer').play();
$("#buttonStarter").hide()
$("#Game").show()
});

หรือใช้โปรแกรมเล่นแบบกำหนดเองเพื่อเริ่มการเล่น http://zohararad.github.io/audio5js/

หมายเหตุ: การเล่นอัตโนมัติจะเปิดใช้ใหม่ในวันที่ 31 ธันวาคม


นี่ไม่ใช่คำตอบเพราะไม่ใช่การเล่นอัตโนมัติ
mightyiam

1
@mightyiam นี่เป็นวิธีแก้ปัญหาเนื่องจากไม่มีวิธีการเล่นอัตโนมัติเนื่องจาก Chrome บล็อกไว้
Youssef KH

0

ฉันเพิ่มแอตทริบิวต์การควบคุมด้วยแท็กเสียงและซ่อนไว้ใน CSS และทั้งหมดทำงานได้ดีใน Chrome

<audio autoplay loop controls id="playAudio">
  <source src="audio/source.mp3">
</audio>

1
บางทีหาก ​​MEI ของคุณสำหรับไซต์นั้นอนุญาตให้เล่นอัตโนมัติ มิฉะนั้นฉันไม่เห็นเหตุผลที่จะได้ผล
mightyiam

0

Google เปลี่ยนนโยบายเมื่อเดือนที่แล้วเกี่ยวกับการเล่นอัตโนมัติใน Chrome โปรดดูประกาศนี้

อย่างไรก็ตามพวกเขาอนุญาตให้เล่นอัตโนมัติหากคุณกำลังฝังวิดีโอและปิดเสียงอยู่ คุณสามารถเพิ่มmutedคุณสมบัติและควรอนุญาตให้วิดีโอเริ่มเล่นได้

<video autoplay controls muted>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>

4
ฉันต้องการให้เล่นเสียงเป็นพื้นหลัง
Akshay Rathod

13
การเล่นอัตโนมัติแบบปิดเสียงไม่สามารถพิจารณาได้ว่าเป็นคำตอบ
mightyiam

@Akshay Rathod คุณหาทางแก้ไขหรือไม่?
The Dead Man

0

วิธีแก้ไขโดยไม่ใช้ iframe หรือ javascript:

<embed src="silence.mp3" type="audio/mp3" autostart="true" hidden="true">
        <audio id="player" autoplay controls><source src="source/audio.mp3" type="audio/mp3"></audio>

ด้วยวิธีนี้จะหลีกเลี่ยงกล่องโต้ตอบเปิด / บันทึกของ Internet Explorer

   <embed src="http://deinesv.cf/silence.mp3" type="audio/mp3" autostart="true" hidden="true">
        <audio id="player" autoplay controls><source src="https://freemusicarchive.org/file/music/ccCommunity/Mild_Wild/a_Alright_Okay_b_See_Through/Mild_Wild_-_Alright_Okay.mp3" type="audio/mp3"></audio>


1
ไม่ ไม่ทำงานใน Chrome เวอร์ชัน 85.0.4183.83 (รุ่นอย่างเป็นทางการ) (64 บิต)
MC9000

0

แท็กวิดีโอสามารถเล่นเสียงได้เช่นกัน เนื่องจากแท็กเสียงดูเหมือนจะไม่ทำงานอย่างที่ควรจะเป็นคุณสามารถใช้แท็กวิดีโอสำหรับเสียง:

<video autoplay muted id="audio1" src="your.mp3" type="audio/mp3">
    Your browser does not support the <code>video</code> element.
</video>
<script>
    unmuteButton.addEventListener('click', function() 
        { 
            if ( unmuteButton.innerHTML == "unmute" )
            {
                unmuteButton.innerHTML = "mute";
                audio1.muted = false; 
            } else {
                unmuteButton.innerHTML = "unmute";
                audio1.muted = true; 
            }
        });
</script>

-2

คุณสามารถใช้ได้<iframe src="link/to/file.mp3" allow="autoplay">ถ้าต้นทางมีสิทธิ์เล่นอัตโนมัติ ข้อมูลเพิ่มเติมที่นี่


มันกำลังแสดงการควบคุมและฉันไม่ต้องการอะไรบนหน้านี้ เพียงแค่เล่นและปุ่มหยุดชั่วคราว
Akshay Rathod

และวิธีการวนซ้ำเสียง?
Akshay Rathod

1
@AkshayRathod กรุณาตรวจสอบHTML <เสียง> วงแอตทริบิวต์ ในขณะที่ใน XHTML ห้ามมิให้มีการย่อขนาดแอตทริบิวต์และต้องกำหนดแอตทริบิวต์ loop เป็น <audio loop = "loop">
hmd

-4

audioแอตทริบิวต์เล่นอัตโนมัติHTML5 เริ่มต้นไม่ทำงานใน Chrome แต่คุณบังคับให้เล่นเสียงอัตโนมัติโดยใช้ JavaScript ได้ ลองสิ่งนี้:

document.getElementById('myAudio').play();

สิ่งนี้ใช้ได้กับฉัน


3
ไม่ใช่ว่าการเล่นอัตโนมัติ "ไม่ทำงาน" แต่เป็นไปตามนโยบายที่การเล่นอัตโนมัติถ้าจะไม่ทำงานหากไม่เป็นไปตามข้อกำหนดของนโยบาย ดูdevelopers.google.com/web/updates/2017/09/... รหัสนี้จะไม่หลีกเลี่ยงนโยบายนั้น หากได้ผลสำหรับคุณนั่นเป็นเพราะคุณมีคุณสมบัติตรงตามเกณฑ์และ / หรือตั้งค่าสถานะนักพัฒนาบางอย่าง แต่ตามที่ระบุในหน้านั้นคุณไม่สามารถสรุปได้ว่าจะใช้ได้กับทุกคน
ADyson

อย่างน้อยใน FF 66 สิ่งนี้จะใช้ไม่ได้เช่นกัน นโยบายใหม่คือการบล็อกการเล่น () หากไม่ได้ถูกกระตุ้นโดยการโต้ตอบของผู้ใช้
Randy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.