2012-02-08 29 views
7

Tôi có một ứng dụng webview Android đơn giản, được xây dựng với Phonegap Build. Khi cố gắng phát tệp mp3 cục bộ được bao gồm trong APK, không có gì xảy ra. Tuy nhiên, nếu tôi kéo một mp3 từ trang web nó hoạt động.Phát tệp âm thanh cục bộ trong ứng dụng webview của Android

ví dụ:

<audio src="www.example.com/01.mp3" > WORKS JUST FINE 

<audio src="01.mp3" > DOES NOT WORK 

Tôi mới phát triển Android, vì vậy tôi chỉ có thể đoán rằng tệp này không thể truy cập được bằng trình phát phương tiện của Android. Đây là một liên kết đến các lỗi/cảnh báo từ tệp nhật ký của tôi nếu nó giúp làm sáng tỏ vấn đề.

http://pastebin.com/isS542RE

Trả lời

3

Bạn đã cố gắng chỉ các tập tin vào đường dẫn hệ thống tập tin địa phương sử dụng "file: ///android_assets/01.mp3" giả .mp3 của bạn nằm trong thư mục ứng dụng tài sản?

+1

Có. Nó thực sự trong tập tin: ///android_assets/www/01.mp3. Tôi nhận được kết quả tương tự. Các tệp hình ảnh trong cùng một vị trí đó chỉ hiển thị tốt, nhưng chúng được hiển thị trực tiếp qua chế độ xem web. Đoán của tôi (và nó chỉ là "đoán") là vì các tệp âm thanh không được trình duyệt phát trực tiếp nhưng đã chuyển sang trình phát, trình phát không có quyền truy cập vào các tệp là một phần của ứng dụng. – Justin

+0

Một cái gì đó khác cần lưu ý, âm thanh html5 nổi tiếng flakey trong Android. http://www.brianhadaway.com/html5-audio-support-on-android-devices/ Nếu bạn đang sử dụng PhoneGap, bạn nên cân nhắc sử dụng Media API của PhoneGap để thay thế. – Devgeeks

+0

Tôi đã gặp vấn đề tương tự với API của Phonegap, các tệp web đã hoạt động, các tệp cục bộ thì không. Cảm ơn các liên kết mặc dù ... có vẻ như Brian đã xây dựng một cầu thủ đơn giản tốt đẹp với Flash dự phòng. Hầu hết các cầu thủ ra có quá cồng kềnh cho những gì tôi cần. Gonna cho anh ta một thử. – Justin

5

Tôi làm việc này bằng cách sử dụng lớp Media của Phonegap. Tôi đã phải làm điều gì đó sai ban đầu, nhưng tôi không chắc chắn những gì. Cách thích hợp để truy cập thông qua đối tượng phương tiện truyền thông là như Simon đã nêu trước đây: myMedia = new Media ("/ android_asset/www/test.mp3");

Bạn phải đặt đường dẫn đầy đủ khi lớp phương tiện mặc định vào thư mục/SDCARD trên đường dẫn tương đối.

Simon cũng có một ghi công tuyệt vời về việc sử dụng các phương tiện truyền thông lớp: http://simonmacdonald.blogspot.com/2011/05/using-media-class-in-phonegap.html?m=1

Đối với các phương pháp HTML5 và sử dụng thẻ AUDIO, tôi vẫn không chắc chắn lý do tại sao nó không thành công trên các tập tin địa phương. Lớp mediag của Phonegap hoạt động tốt và có lẽ là giải pháp đáng tin cậy hơn. Phonegap FTW!

2

Chúng tôi đã gặp sự cố tương tự, tệp phương tiện, để phát, cần phải nằm trong thư mục bộ nhớ ngoài. Hãy thử di chuyển tệp HTML của bạn và các tệp có liên quan đến /mnt/sdcard/.

+0

Tôi đã có cùng một vấn đề, và di chuyển các tập tin vào sdcard, và bây giờ nó hoạt động. Cảm ơn anh bạn. – Cairo

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