Tôi biết rằng SoundPool được thiết kế để xử lý các âm thanh nhỏ như fx và tôi đảm bảo 4 clip âm thanh mà tôi muốn phát một lần theo một số trình tự là đủ nhỏ.và một lần nữa về các vấn đề về bộ nhớ với SoundPool
Tôi đã sử dụng chất lượng ogg 0 và clip là 35kb, 14kb, 21kb và 23kb tổng cộng 92kb âm thanh nén. Tôi không có ý tưởng làm thế nào để ước tính kích thước không nén sẽ là gì, nhưng nó không phải là rất nhiều, phải không?
Vì vậy, khi tôi phát 4 âm thanh theo thứ tự, nó hoạt động tốt trong 9 lần đầu tiên (9 chuỗi x 4 âm thanh) nhưng bắt đầu gây ra các vấn đề về bộ nhớ trên chuỗi nines cho một trong các âm thanh. Nó luôn luôn là chuỗi 9 khi tôi bắt đầu thấy lỗi.
Cách tốt nhất để xử lý điều đó là gì? Tôi có một vài ý tưởng:
1) nén âm thanh thậm chí nhiều hơn (ogg chất lượng -1 và mono thay vì stereo)
2) dỡ bỏ và tải âm thanh thường xuyên sử dụng SoundPool.load và SoundPool.unload
3) phát hành và tạo lại thời gian cá nhân của SoundPool từ thời điểm
Tôi có thể làm gì khác không? Nó là đáng xấu hổ rằng api android không thể xử lý các clip nhỏ như vậy. Tôi tự hỏi như thế nào mọi người tạo ra trò chơi với rất nhiều hiệu ứng âm thanh ...
lỗi trông giống như rằng:
LỖI/AudioFlinger (35): không đủ bộ nhớ cho kích thước AudioTrack = 1.048.640 DEBUG/MemoryDealer (35) : AudioTrack (0x25018, size = 1048576)
Cảm ơn nó làm việc cho tôi. Trước đó tập tin âm thanh của tôi bị cắt. Nhưng tôi đã chuyển đổi và resample rằng m4a từ 44 đến 22 và bây giờ nó hoạt động mà không bị cắt. –