2016-11-04 12 views
9

Chơi một nhạc MP3 vớiLàm cách nào để phát thông báo bằng âm thanh với Chrome dành cho Android với Javascript?

var popsound = new Audio('http://gget.it/u1urz3zh/popsound.mp3'); 
 
popsound.load(); 
 
popsound.play();

không hoạt động trong Chrome dành cho Android. Theo this link, đây là một tính năng, không cho phép phát lại theo cách này, tức là không có đầu vào người dùng rõ ràng.

Tôi hiểu rằng điều này được thực hiện với mục đích (để lưu dữ liệu di động cho người dùng, chủ yếu), nhưng sau đó cách làm cho trang web phát âm thanh thông báo? Có chắc chắn là một cách để chơi âm thanh thông báo (thông báo được phổ biến trên điện thoại), làm thế nào để làm điều đó?


Nếu không thể, ít nhất, làm thế nào để biết (với JS) nếu trình duyệt sẽ được phép hoặc không được phép chơi âm thanh với .play()? (sau đó nó sẽ có thể hiển thị nếu âm thanh thông báo có sẵn hay không trên trang web)


Bối cảnh: Tôi đang tạo web chat service, sau đó làm thế nào để đóng thông báo âm thanh sau khi một thông điệp được gửi nếu tôi không thể sử dụng .play() trong Chrome dành cho Android?

Trả lời

0

Ít nhất thủ thuật này cho phép biết trước nếu phương tiện truyền thông phát lại đòi hỏi người sử dụng cử chỉ:

function mediaPlaybackRequiresUserGesture() { 
    var audio = document.createElement('audio'); 
    audio.play(); 
    return audio.paused; 
} 

Found here.

-1

Bạn có thể thêm phần tử âm thanh vào DOM và thay đổi nó thành động qua javascript.

setTimeout(function() { 
 
\t \t \t document.getElementById('audio').src = 'http://gget.it/u1urz3zh/popsound.mp3'; 
 
\t \t \t document.getElementById('audio').load(); 
 
\t \t \t document.getElementById('audio').play(); 
 
\t \t }, 2000);
<audio id="audio"></audio>

+1

thử trên điện thoại Samsung (Chrome dành cho Android), nó không hoạt động. Xem https://bugs.chromium.org/p/chromium/issues/detail?id=138132 – Basj

-1

Sau đây là cách tôi đã chơi âm thanh trong một trong những dự án web của tôi, tôi đã sử dụng JQuery, nhưng bạn có thể sửa đổi nó một chút để làm việc trong Javascript hoặc thay vì sử dụng JQuery.

tạo âm thanh thẻ html và đặt nguồn của nó.

<audio id="chatAudio"><source src="01.mp3" type="audio/mpeg"></audio> 

và kích hoạt phương thức phát âm thanh bằng JQuery.

$('#chatAudio')[0].play(); 

Tôi không chắc liệu nó có phù hợp với bạn hay không. nhưng bạn có thể thử cách này.

+0

Không hoạt động trên Chrome dành cho Android của tôi. Nó có hiệu quả với bạn không @GauravLad? Một lần nữa, đây là nguyên nhân: https://bugs.chromium.org/p/chromium/issues/detail?id=138132 – Basj

+0

Thực ra đã gần 8-9 tháng kể từ bây giờ, khi tôi sử dụng những mã đó lần trước, –

+0

Ok, bạn có thể thử trên điện thoại của mình để xem nó có hoạt động không? – Basj

0

tôi gặp vấn đề tương tự trong ứng dụng của tôi. Kịch bản sử dụng ứng dụng của tôi giống như sau:
1) nhấp vào nút để hiển thị bảng có thông tin (hành động của người dùng)
2) hiển thị bảng và làm mới dữ liệu trong đó bằng AJAX
3) phát âm thanh khi dữ liệu đã được thay đổi
Fortunatelly Tôi đã có hành động người dùng (bước 1) vì vậy tôi đã có thể "bắt đầu" âm thanh của nó và sau đó chơi nó bằng javascript mà không cần hành động người dùng cần thiết. Xem mã.

HTML

<audio id="kohoutAudio"> 
    <source src="views/images/kohout.mp3"> 
</audio> 

<button id="btnShow">Show table</button> 

Javascript

$("#btnShow").click(function() { 
    //some code to show the table 
    //initialize the sound 
    document.getElementById('kohoutAudio').play(); 
    document.getElementById('kohoutAudio').pause(); 
    }); 

function announceChange(){ 
    document.getElementById('kohoutAudio').play(); 
}; 
Các vấn đề liên quan