Tôi hiện đang có âm thanh PCM ở dạng mảng byte. Định dạng được ký 16 bit chút cuối. Tôi muốn chuyển đổi điều này sang một số định dạng có thể phát trên Android, tốt nhất là phiên bản 3.2 hoặc cao hơn. Có ai có đề xuất về cách này có thể được thực hiện? Tôi đã thực hiện một số nghiên cứu và thử những điều sau đây, nhưng không có nghiên cứu nào thành công. Nó sẽ được đánh giá cao nếu bất cứ ai có thể đề xuất một cách tốt hơn hoặc chỉ ra nơi tôi đã đi sai.PCM byte thực [] Để âm thanh trên Android
Tôi đã thử tạo một AudioFormat với cài đặt âm thanh chính xác, tuy nhiên Android không hỗ trợ thư viện javax.sound.sampled.
Tôi cũng đã cố gắng ghi dữ liệu PCM vào tệp sóng, nhưng tôi gặp sự cố khi nhận tất cả thông tin tiêu đề wav cần thiết.
Tôi cũng đã thử sử dụng lớp AudioTrack do Android cung cấp để phát dữ liệu PCM. Tuy nhiên, tôi không thể nghe thấy bất kỳ âm thanh nào. Đây là phương pháp của tôi:
public void playback(){
try{
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 500000, AudioTrack.MODE_STATIC);
audioTrack.write(audio, 0, 500000);
} catch(Throwable t){
Log.d("Audio","Playback Failed");
}
}
Mọi đề xuất sẽ được đánh giá cao.
đã cập nhật câu trả lời của tôi –