Như tôi đã hiểu, Android sẽ chỉ phát âm thanh định dạng AAC nếu được mã hóa dưới dạng MPEG-4 hoặc 3GPP.Truyền trực tuyến âm thanh AAC với Android
Tôi có thể phát âm thanh AAC được mã hóa dưới dạng M4A khi nó là cục bộ cho ứng dụng nhưng không thành công khi nhận được từ máy chủ.
Các công trình sau đây, vì tệp m4a được lưu trữ cục bộ trong thư mục res/raw.
MediaPlayer mp = MediaPlayer.create(this, R.raw.*file*);
mp.start();
Các tính năng sau không hoạt động. (Nhưng với MP3).
Uri uri = Uri.parse("http://*example.com*/blah.m4a");
MediaPlayer mp = MediaPlayer.create(this, uri);
mp.start();
Bất kỳ ai có thể phát hiện bất kỳ ánh sáng nào về lý do không thành công khi tệp âm thanh m4a không phải là địa phương?
Dưới đây là (một số) lỗi ...
ERROR/PlayerDriver(542): Command PLAYER_INIT completed with an error or info UNKNOWN PVMFStatus
ERROR/MediaPlayer(769): error (200, -32)
WARN/PlayerDriver(542): PVMFInfoErrorHandlingComplete
DEBUG/MediaPlayer(769): create failed:
DEBUG/MediaPlayer(769): java.io.IOException: Prepare failed.: status=0xC8
DEBUG/MediaPlayer(769): at android.media.MediaPlayer.prepare(Native Method)
DEBUG/MediaPlayer(769): at android.media.MediaPlayer.create(MediaPlayer.java:530)
DEBUG/MediaPlayer(769): at android.media.MediaPlayer.create(MediaPlayer.java:507)
...
Tôi đang nhắm mục tiêu SDK 1.6.
Bạn đang bối rối với các định dạng tệp. AAC là định dạng mã hóa âm thanh. M4A là loại tệp hoặc gói, nằm xung quanh dữ liệu AAC. 3GPP tương tự nhưng có thể chứa các loại âm thanh được mã hóa khác. Xem tại đây http://developer.android.com/guide/appendix/media-formats.html và tại đây http://en.wikipedia.org/wiki/M4a. – greg7gkb
Đúng, tôi nên mô tả 3GPP và M4A là "vùng chứa" cho âm thanh AAC. Trên đỉnh đầu của tôi, tôi nghĩ * M4A chỉ có thể được sử dụng cho các tệp tĩnh và 3GPP chỉ có thể truyền bằng RTSP thay vì HTTP? Điều này sẽ gây ra sự cố cho phát trực tuyến HTTP. Đúng nếu tôi sai ... – bdls