2015-05-15 18 views
5

Nó hoạt động tốt trên iOS.Âm thanh sẽ không phát trên Android bằng điện thoại, nhưng hoạt động tốt trên iOS

tôi đã xem xét nhiều câu trả lời bao gồm những 2:

Play sound on Phonegap app for Android

HTML5 audio not playing in PhoneGap App (Possible to use Media?)

Tôi đã thử tất cả các giải pháp:

  • Thay đổi đường dẫn đến /android_asset/www/ dành cho Android
  • Sử dụng tệp .ogg
  • Tải trước âm thanh bằng phát()/pause().
  • Sử dụng các plugin Truyền thông được cung cấp bởi Cordova/PhoneGap

Dưới đây là mã hiện tại của tôi:

if(device.platform === "Android") //DIFFERENT PATH FOR ANDROID 
{ 
    url = "/android_asset/www/sound.ogg"; 
}else{ 
    url = "sound.mp3"; 
} 
alert(url); 
sound = new Media(url); 
sound.play(); 

Bất cứ ai có một ý tưởng ?? Nó cảm thấy như tôi đã được đi vòng quanh trong vòng tròn

+1

Tôi gặp phải vấn đề tương tự và vẫn không có giải pháp. – NarendraJi

+0

Hmmmm, điều này thật đáng lo! Có rất nhiều câu trả lời khác nhau trên Stackoverflow, nhưng không có câu trả lời nào hoạt động:/ – smj2393

+1

Bạn đã thử trên trình mô phỏng hoặc thiết bị thực? Cố gắng nhấn phím phần cứng âm lượng, nó có làm hỏng ứng dụng của bạn không? –

Trả lời

0

Cuối cùng tôi quản lý để làm cho nó làm việc !!

đầu tiên tôi initialising các tập tin âm thanh bằng cách tìm các con đường Android đầy đủ bằng @Sarim Sidd giúp trên và sau đó tải trước các tập tin âm thanh:

//INITIALISE SOUND 
if(device.platform === "Android") //DIFFERENT PATH FOR ANDROID 
{ 
    //navigator.notification.beep(1); 
    var path = window.location.pathname; 
    path = path.substr(path, path.length - 10); //strip off index.html 
    url = 'file://'+path+"sound.ogg"; 
}else{ 
    url = "sound.mp3"; 
} 
//sound = new Media(url); 
sound = new Media(url); 
sound.play(); 
sound.pause(); 

Sau đó, khi để chơi âm thanh tôi buộc khối lượng đầy đủ (1.0) trước khi gọi phương thức phát. Vì một lý do nào đó tôi nhận thấy âm thanh được đặt lại để tắt tiếng mỗi khi tôi khởi động ứng dụng:

2

tôi đã tương tự và giải pháp này làm việc cho tôi Nhận đường dẫn đầy đủ của ứng dụng của bạn sử dụng window.location.pathname, cách này bạn không cần phải lo lắng về loại thiết bị, nó sẽ cung cấp cho bạn hoàn thành đường dẫn bao gồm index.html và bằng cách sử dụng chức năng dưới đây, chỉ cần bỏ ra index.html từ chuỗi và nối thêm tệp phương tiện của bạn.

function getPhoneGapPath() { 

var path = window.location.pathname; 
path = path.substr(path, path.length - 10); //strip off index.html 
return 'file://' + path; 

}; 

Và sau đó

url = getPhoneGapPath()+'sound.ogg'; //OR MP3 

alert(url); 
sound = new Media(url); 
sound.play(); 

Hope this helps

+1

Vẫn không có may mắn! URL đầu ra 'file: /// android_asset/www/sound.ogg' – smj2393

1

Điều này đã cho tôi rất nhiều phiền toái cho Android, nhưng cuối cùng tôi đã giải quyết được vấn đề này. Bạn có thể tìm thấy giải pháp được mô tả tại đây: Solution

+2

Xin chào James, trong khi liên kết này có thể trả lời câu hỏi, tốt nhất là đưa các phần quan trọng của câu trả lời vào đây và cung cấp liên kết để tham khảo.Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. Xin hãy xem tại đây: [Tại sao và làm thế nào là một số câu trả lời bị xóa?] (Http://stackoverflow.com/help/deleted-answers) – bummi

+0

liên kết đã chết bây giờ ... – CodeGems

+0

Và đó là lý do tại sao bạn đăng câu trả lời ở đây và không có liên kết ... – Flummox

Các vấn đề liên quan