PCM chỉ là đại diện kỹ thuật số của tín hiệu âm thanh analog. Thật không may, nó không gói gọn bất kỳ siêu dữ liệu nào về các kênh âm thanh, độ sâu bit hoặc tỷ lệ mẫu - tất cả đều cần thiết để đọc chính xác dữ liệu PCM đã nói. Tôi cho rằng AVAudioPlayer sẽ chấp nhận dữ liệu PCM này được bao bọc trong một đối tượng NSData miễn là bạn có thể thiết lập các biến đó theo cách thủ công trong đối tượng AVAudioPlayer. Thật không may, những biến này chỉ đọc, vì vậy mặc dù tài liệu nói rằng AVAudioPlayer có thể xử lý bất kỳ thứ gì mà Core Audio có thể xử lý, nó không có cách nào để xử lý dữ liệu LPCM thô.
Như đã nói bởi zoul, tôi sẽ tưởng tượng cách dễ nhất để thực hiện điều này là ném vào tiêu đề WAV, vì tiêu đề thông báo cho AVPlayer về các biến cần thiết ở trên. Đó là 44 byte, có thể dễ dàng giả lập, và được định nghĩa độc đáo - Tôi đã sử dụng cùng một definition được đưa ra ở trên để thực hiện mã hóa tiêu đề wav và giải mã. Ngoài ra, nó chỉ được thêm vào dữ liệu LPCM chưa sửa đổi của bạn LPCM.
Tôi tự hỏi, nếu điều này là nói từ kinh nghiệm hoặc đầu cơ. – iter
Tôi không thử, nhưng nó phải hoạt động. – zoul
Cảm ơn bạn đã làm rõ. Tôi đang suy nghĩ ít hơn dọc theo dòng cán bộ mã hóa WAV của riêng tôi và nhiều hơn nữa dọc theo dòng sử dụng AudioToolbox để làm việc nâng cho tôi. – iter