Có hướng dẫn hoặc ví dụ nào về cách phát tệp WAV trên máy Mac từ ứng dụng được xây dựng bởi Delphi XE2 FireMonkey không?Có phát lại âm thanh WAV trên máy Mac từ Delphi XE2 không?
Tôi hỏi vì mã này không hoạt động:
var
//fWaves head and data is initialized and plays properly on Win through OpenAL
fWaves: array of record
Head: TWAVHeaderEx;
Data: array of byte;
end;
D: NSData;
N: NSSound;
begin
D := TNSData.Wrap(TNSData.Create.initWithBytes(@fWaves[0].Head, SizeOf(fWaves[0].Head) + fWaves[0].Head.DataSize));
ShowMessage(IntToStr(D.length)); //--Length is correct
N := TNSSound.Wrap(TNSSound.Create.initWithData(D));
ShowMessage(FloatToStr(N.Duration)); //--Displays 0
if N.play then
ShowMessage('Yes')
else
ShowMessage('No'); //--Always returns NO
end;
Tôi tải phần đầu tập tin WAV và dữ liệu từ bộ nhớ và nó đóng tốt với OpenAL. Vì vậy, vấn đề là một nơi nào đó trong việc sử dụng NSSound của tôi. Bất cứ ai có thể vui lòng cung cấp một số ví dụ làm việc của phát lại âm thanh Delphi XE2 trên máy Mac?
Tôi đoán định dạng của bản ghi fwaves không khớp chính xác với định dạng của tệp WAV thực. Thử sử dụng byte thô từ tệp. –
Đã thử rằng, cũng như cố gắng initFromFile (path_to_aiff) .. Không có gì giúp đỡ. Vì vậy, cuối cùng tôi đã chuyển sang OpenAL. – Kromster