Tôi muốn phát một số hiệu ứng âm thanh đơn giản khi mọi người nhấn một số nút nhất định trong ứng dụng của tôi và tôi đã thử một số thứ, nhưng tôi luôn có độ trễ khiến âm thanh dường như đồng bộ hóa.Phát hiệu ứng âm thanh mà không có độ trễ trong Mục tiêu-C
Tôi đã làm theo hướng dẫn here, vì vậy tôi đã thử xây dựng trong Dịch vụ âm thanh, nhưng đã có độ trễ và tôi đã thử AVAudioPlayer, nhưng điều đó cũng có độ trễ, mặc dù tôi đã sử dụng "PrepareToPlay ".
Tôi có thực sự phải cài đặt một thư viện lớn và lộn xộn như Finch để có hiệu ứng âm thanh đơn giản mà không có độ trễ trong ứng dụng đơn giản của tôi không?
Hy vọng bạn có thể làm rõ mọi thứ cho tôi!
CẬP NHẬT
Mã cho dịch vụ âm thanh:
NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"PlopsX4"
withExtension:@"aif"];
AudioServicesCreateSystemSoundID((CFURLRef)soundURL, &sound1);
AudioServicesPlaySystemSound(sound1);
Mã cho AVAudioPlayer trong viewDidLoad:
NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"PlopsX4"
withExtension:@"aif"];
self.avSound = [[AVAudioPlayer alloc]
initWithContentsOfURL:soundURL error:nil];
[self.avSound prepareToPlay]
Mã cho AVAudioPlayer trong phương pháp mà tôi muốn chơi các file:
[self.avSound play];
Silly câu hỏi, nhưng bạn có chắc đó không phải là một khoảnh khắc của sự im lặng ở đầu tập tin âm thanh của bạn? Bạn đã đặt nó thông qua một cái gì đó như audacity? –
Ngoài ra, bạn đang thử nghiệm như thế nào? Thiết bị? Giả lập? Bạn đang thử nghiệm phần cứng nào trên thiết bị? –
Bạn đã tìm kiếm SO. Dường như có nhiều câu hỏi khác về vấn đề này. Một số gợi ý một số hacks để tải trước, những người khác đề nghị sử dụng âm thanh hệ thống (SystemSoundID) – KlausCPH