Hướng dẫn javascript play sound on iphone - javascript phát âm thanh trên iphone

Tôi đã có một ứng dụng web JavaScript hoạt động, phát một số âm thanh định kỳ như sau:

var SOUND_SUCCESS = new Audio('success.mp3');
SOUND_SUCCESS.play();

Điều này hoạt động tuyệt vời trên các trình duyệt máy tính để bàn (được thử nghiệm ở Edge và Chrome), nhưng nó không phát trên Safari trên iPhone.

Tôi đã nhìn xung quanh Stack Overflow và tôi đã tìm thấy một số câu trả lời từ một vài năm trước rằng không thể phát âm thanh từ Safari trừ khi bạn ở trong trình phát toàn màn hình đó. đây vẫn là trường hợp?

Hướng dẫn javascript play sound on iphone - javascript phát âm thanh trên iphone

Mark Rogers

95.1K18 Huy hiệu vàng85 Huy hiệu bạc135 Huy hiệu Đồng18 gold badges85 silver badges135 bronze badges

Hỏi ngày 2 tháng 8 năm 2015 lúc 21:00Aug 2, 2015 at 21:00

Hướng dẫn javascript play sound on iphone - javascript phát âm thanh trên iphone

Leon Overweelleon OverweelLeon Overweel

1.3684 Huy hiệu vàng15 Huy hiệu bạc27 Huy hiệu đồng4 gold badges15 silver badges27 bronze badges

1

Để thêm vào phản hồi của Xingliang CAI, đây là một mẫu mã mà tôi phải làm việc cho tôi (được chỉnh sửa bên dưới để làm việc trên iOS14, cảm ơn @Andrewl!):

const soundEffect = new Audio();
soundEffect.autoplay = true;

// onClick of first interaction on page before I need the sounds
// (This is a tiny MP3 file that is silent and extremely short - retrieved from https://bigsoundbank.com and then modified)
soundEffect.src = "data:audio/mpeg;base64,SUQzBAAAAAABEVRYWFgAAAAtAAADY29tbWVudABCaWdTb3VuZEJhbmsuY29tIC8gTGFTb25vdGhlcXVlLm9yZwBURU5DAAAAHQAAA1N3aXRjaCBQbHVzIMKpIE5DSCBTb2Z0d2FyZQBUSVQyAAAABgAAAzIyMzUAVFNTRQAAAA8AAANMYXZmNTcuODMuMTAwAAAAAAAAAAAAAAD/80DEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zQsRbAAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zQMSkAAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV";

// later on when you actually want to play a sound at any point without user interaction
soundEffect.src = 'path/to/file.mp3';

Đã trả lời ngày 18 tháng 8 năm 2019 lúc 19:57Aug 18, 2019 at 19:57

9

iOS vô hiệu hóa autoplay, thay vào đó yêu cầu chơi được bắt đầu như một phần của tương tác người dùng (ví dụ: bạn có thể bắt đầu phát lại trong trình nghe TouchStart). Có một chút tài liệu về điều này trên tài liệu nhà phát triển của Apple. Ngoài ra còn có bài viết này khắc phục giới hạn âm thanh iOS HTML5 trên trang web nhà phát triển của IBM có ví dụ và chi tiết hơn.

Mgiuffrida

3.1151 Huy hiệu vàng24 Huy hiệu bạc25 Huy hiệu đồng1 gold badge24 silver badges25 bronze badges

Đã trả lời ngày 2 tháng 8 năm 2015 lúc 22:01Aug 2, 2015 at 22:01

Hướng dẫn javascript play sound on iphone - javascript phát âm thanh trên iphone

ED lá phiếu bỏ phiếuEd Ballot

3,3451 Huy hiệu vàng16 Huy hiệu bạc24 Huy hiệu đồng1 gold badge16 silver badges24 bronze badges

4

IOS trên di động vô hiệu hóa âm thanh tự động phát theo mặc định. Vì vậy, để có được xung quanh vấn đề này. Bạn có thể đặt nút bật/tắt nút chuyển đổi ở đâu đó trên trang và phát một số âm thanh bằng phần tử âm thanh ("AudioEuity") nếu người dùng nhấp vào công tắc nút.audioElement") if the user click the button switch.

Sau đó, cùng một "âm thanh" có thể được sử dụng để phát các âm thanh trong tương lai bằng cách thay đổi thuộc tính "SRC" của nó và gọi phương thức "play ()" của nó, mà không cần thêm bất kỳ tương tác người dùng nào.audioElement" can be used to play future sounds by changing its "src" attribute and call its "play()" method, without any further user interaction.

Đã trả lời ngày 30 tháng 1 năm 2019 lúc 2:31Jan 30, 2019 at 2:31

Hướng dẫn javascript play sound on iphone - javascript phát âm thanh trên iphone

2

Để có được giải pháp của @user2415116 để làm việc trong iOS 14, tôi đã làm điều này:

const soundEffect = new Audio();
soundEffect.autoplay = true;

// onClick of first interaction on page before I need the sounds
// (This is a tiny MP3 file that is silent and extremely short - retrieved from https://bigsoundbank.com and then modified)
soundEffect.src = "data:audio/mpeg;base64,SUQzBAAAAAABEVRYWFgAAAAtAAADY29tbWVudABCaWdTb3VuZEJhbmsuY29tIC8gTGFTb25vdGhlcXVlLm9yZwBURU5DAAAAHQAAA1N3aXRjaCBQbHVzIMKpIE5DSCBTb2Z0d2FyZQBUSVQyAAAABgAAAzIyMzUAVFNTRQAAAA8AAANMYXZmNTcuODMuMTAwAAAAAAAAAAAAAAD/80DEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zQsRbAAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zQMSkAAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV";

// later on when you actually want to play a sound at any point without user interaction
soundEffect.src = 'path/to/file.mp3';

Đã trả lời ngày 23 tháng 6 năm 2021 lúc 23:08Jun 23, 2021 at 23:08

AndrewlandrewlAndrewL

2.9665 Huy hiệu vàng30 Huy hiệu bạc32 Huy hiệu Đồng5 gold badges30 silver badges32 bronze badges

Tôi đã sử dụng cái này:

useEffect(() => {
  window.addEventListener('touchstart', () => {
    document.getElementById('audio').muted = false
    document.getElementById('audio').play()
  })
})

Ngay khi người dùng cuộn, âm thanh phát

Đã trả lời ngày 15 tháng 12 năm 2020 lúc 0:53Dec 15, 2020 at 0:53

Hướng dẫn javascript play sound on iphone - javascript phát âm thanh trên iphone

TithostithosTithos

1.0994 Huy hiệu vàng18 Huy hiệu bạc39 Huy hiệu đồng4 gold badges18 silver badges39 bronze badges

1

Safari ưu tiên cho nhạc nền của video qua các tệp âm thanh! Nếu một video có một bản nhạc, ngay cả khi nó im lặng và được thiết lập để tắt tiếng, nó sẽ chặn âm thanh. Giải pháp là loại bỏ nhạc phim từ video, không ghi lại nó. Tôi hi vọng điêu nay se giup được ai đo! Tôi đã mất ngày làm việc với vấn đề này.

Đã trả lời ngày 14 tháng 4 lúc 11:15Apr 14 at 11:15

Joel Mosesjoel Mosesjoel Moses

3454 Huy hiệu bạc6 Huy hiệu Đồng4 silver badges6 bronze badges

Tôi biết nó đã được trả lời, nhưng đối với một số điều này có thể giúp ích. Nếu bạn có kích hoạt .Play trong hàm setTimeout, bạn phải giữ thời gian dưới 951.

const soundEffect = new Audio();
soundEffect.autoplay = true;

// onClick of first interaction on page before I need the sounds
// (This is a tiny MP3 file that is silent and extremely short - retrieved from https://bigsoundbank.com and then modified)
soundEffect.src = "data:audio/mpeg;base64,SUQzBAAAAAABEVRYWFgAAAAtAAADY29tbWVudABCaWdTb3VuZEJhbmsuY29tIC8gTGFTb25vdGhlcXVlLm9yZwBURU5DAAAAHQAAA1N3aXRjaCBQbHVzIMKpIE5DSCBTb2Z0d2FyZQBUSVQyAAAABgAAAzIyMzUAVFNTRQAAAA8AAANMYXZmNTcuODMuMTAwAAAAAAAAAAAAAAD/80DEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zQsRbAAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zQMSkAAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV";

// later on when you actually want to play a sound at any point without user interaction
soundEffect.src = 'path/to/file.mp3';
1 ngăn chặn chơi tự động

const soundEffect = new Audio();
soundEffect.autoplay = true;

// onClick of first interaction on page before I need the sounds
// (This is a tiny MP3 file that is silent and extremely short - retrieved from https://bigsoundbank.com and then modified)
soundEffect.src = "data:audio/mpeg;base64,SUQzBAAAAAABEVRYWFgAAAAtAAADY29tbWVudABCaWdTb3VuZEJhbmsuY29tIC8gTGFTb25vdGhlcXVlLm9yZwBURU5DAAAAHQAAA1N3aXRjaCBQbHVzIMKpIE5DSCBTb2Z0d2FyZQBUSVQyAAAABgAAAzIyMzUAVFNTRQAAAA8AAANMYXZmNTcuODMuMTAwAAAAAAAAAAAAAAD/80DEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zQsRbAAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zQMSkAAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV";

// later on when you actually want to play a sound at any point without user interaction
soundEffect.src = 'path/to/file.mp3';
2 hoạt động chơi tự động

Đã trả lời ngày 7 tháng 7 lúc 2:24Jul 7 at 2:24

Hướng dẫn javascript play sound on iphone - javascript phát âm thanh trên iphone

Ron Rossron RossRon Ross

2454 Huy hiệu bạc13 Huy hiệu đồng4 silver badges13 bronze badges

2

Câu hỏi rất cũ nhưng một cái gì đó có thể giúp một số người, trong trường hợp của tôi (điều này có thể không khả thi trong mọi trường hợp), nó đã giúp phát tất cả các tệp âm thanh trong 1 millisecond, sau đó tạm dừng chúng. Sau đó, nếu bạn tiếp tục chơi âm thanh, nó hoạt động mà không gặp vấn đề gì.

   playButton.addEventListener('click', function(){
      introVid.play();
      audioPlayers[0].play(); //every array element is constructed using new Audio("yourlink");
      audioPlayers[1].play();
      audioPlayers[2].play();
      audioPlayers[3].play();
      window.setTimeout(function(){
        audioPlayers[0].pause();
        audioPlayers[1].pause();
        audioPlayers[2].pause();
        audioPlayers[3].pause();
      },1);
    })

Đã trả lời ngày 9 tháng 12 năm 2021 lúc 16:19Dec 9, 2021 at 16:19

Hướng dẫn javascript play sound on iphone - javascript phát âm thanh trên iphone

Liên kết tập lệnh của riêng tôi với tệp HTML của bạn:


Và điều duy nhất bạn cần làm là:

play("customfile.mp3");

Đã trả lời ngày 15 tháng 7 lúc 9:53Jul 15 at 9:53

1

Haha, tôi đã vượt qua nó như thế này.

Đặt vào trang Thẻ âm thanh với Autoplay (true)audio tag with autoplay (true)

Nó sẽ phát âm thanh một khi phần tử được gắn kết. (Ngay cả trên Safari iOS)

Sau đó, có vẻ như bạn có thể chơi nó bất cứ khi nào bạn muốn lại bằng cách gọi

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

Nhưng bây giờ bạn có thể nói, nhưng tôi không muốn phát âm thanh là autoplay.

Vâng, tôi đã vượt qua nó để đặt thuộc tính "tắt tiếng" trên đó, và sau đó đặt nó thành sai khi chơi."muted" property on that, and then set it to false when playing.

Và chơi:

const soundEffect = new Audio();
soundEffect.autoplay = true;

// onClick of first interaction on page before I need the sounds
// (This is a tiny MP3 file that is silent and extremely short - retrieved from https://bigsoundbank.com and then modified)
soundEffect.src = "data:audio/mpeg;base64,SUQzBAAAAAABEVRYWFgAAAAtAAADY29tbWVudABCaWdTb3VuZEJhbmsuY29tIC8gTGFTb25vdGhlcXVlLm9yZwBURU5DAAAAHQAAA1N3aXRjaCBQbHVzIMKpIE5DSCBTb2Z0d2FyZQBUSVQyAAAABgAAAzIyMzUAVFNTRQAAAA8AAANMYXZmNTcuODMuMTAwAAAAAAAAAAAAAAD/80DEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zQsRbAAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zQMSkAAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV";

// later on when you actually want to play a sound at any point without user interaction
soundEffect.src = 'path/to/file.mp3';
0

̇Smail Y.

3.0845 Huy hiệu vàng20 Huy hiệu bạc26 Huy hiệu đồng5 gold badges20 silver badges26 bronze badges

Đã trả lời ngày 9 tháng 11 năm 2020 lúc 11:20Nov 9, 2020 at 11:20

Hướng dẫn javascript play sound on iphone - javascript phát âm thanh trên iphone

Lukylukyluky

2.1513 huy hiệu vàng19 Huy hiệu bạc34 Huy hiệu đồng3 gold badges19 silver badges34 bronze badges

JavaScript có sẵn trên iPhone không?

Bạn có thể bật JavaScript trên iPhone của mình trong phần Safari của ứng dụng Cài đặt. Nếu JavaScript không được bật, nhiều trang web sẽ xuất hiện bị hỏng trong trình duyệt Safari của bạn. Mặc dù JavaScript nên được bật theo mặc định, nhưng điều quan trọng là kiểm tra xem nó có vô tình bị vô hiệu hóa không.. If JavaScript isn't turned on, many websites will appear broken in your Safari browser. Though JavaScript should be enabled by default, it's important to check that it hasn't been accidentally disabled.

JavaScript được sử dụng cho iPhone là gì?

Giới thiệu về Run JavaScript trên hành động trang web trong các phím tắt trên iPhone hoặc iPad.Gần như tất cả các trang web được viết theo kịch bản bằng JavaScript, ngôn ngữ lập trình tạo ra các hiệu ứng động trong trình duyệt web, bao gồm hoạt hình, menu tương tác, phát lại video, v.v.creates dynamic effects in web browsers, including animations, interactive menus, video playback, and more.

Bảng điều khiển JavaScript trên iPhone ở đâu?

Apple Safari để làm điều đó, đi vào Tùy chọn của Safari (menu Safari> Tùy chọn) và chọn tab nâng cao.Khi menu đó được bật, bạn sẽ tìm thấy bảng điều khiển nhà phát triển bằng cách nhấp vào Phát triển> Hiển thị bảng điều khiển JavaScript.Develop > Show Javascript Console.

Âm thanh JavaScript là gì?

Audio () Trình xây dựng âm thanh () tạo và trả về một htmlaudioelement mới có thể được gắn vào tài liệu để người dùng tương tác và/hoặc nghe hoặc có thể được sử dụng ngoài màn hình để quản lý và phát âm thanh.