2010-04-27 43 views

Trả lời

15

Nếu bạn đang ở trong Trình mô phỏng, hãy đảm bảo rằng trong Hệ thống tiền âm thanh → Âm thanh, rằng "Hiệu ứng âm thanh giao diện người dùng đang phát" không bị tắt. Nếu bạn đang ở trên thiết bị, hãy kiểm tra xem công tắc chuông không được đặt ở chế độ im lặng hay không.

+0

Tôi không thể tìm thấy bất kỳ "Tùy chọn hệ thống" nào. Chúng có trong thiết bị mô phỏng hoặc trong ứng dụng giả lập không? –

+0

Ý tôi là trên Mac OS X, trong Tùy chọn hệ thống của máy tính. – lucius

+0

Tôi sẽ không bao giờ nghĩ về điều này - cảm ơn bạn! –

2

Tùy chọn hệ thống → Âm thanh → [x] Phát âm thanh giao diện người dùng - hộp kiểm này đã giúp tôi, giải quyết vấn đề AudioServicesPlaySystemSound (_). Nhưng đáng chú ý là dự án Apple Xcode mẫu "SysSound" làm việc tốt mà không cần kiểm tra hộp này. Tôi đang sử dụng Xcode 4.4.1 để tạo ứng dụng riêng từ đầu. Có thể có sự khác biệt giữa các dự án được tạo bằng các công cụ Xcode cũ hơn và mới hơn không?

+0

Ví dụ SysSound hoạt động cho nút AudioServicesPlayAlertSound nhưng không cho nút AudioServicesPlaySystemSound. Mặc dù chúng giống nhau. – samkass

+0

@samkass bạn nói đúng – Jacky

5

Có thể vấn đề là this? AudioServicesDisposeSystemSoundID() sẽ ngừng hoạt động âm thanh trước khi phát.

0

Trên thiết bị, đi vào cài đặt và bật lên âm lượng trên Sounds-> Ringer and Alerts

2

Xây dựng về câu trả lời user1056521 của, sử dụng đoạn mã sau:

AudioServicesPlaySystemSoundWithCompletion(soundID, ^{ 
    AudioServicesDisposeSystemSoundID(soundID); 
}); 

nơi soundID là giá trị SystemSoundID bạn nhận được khi bạn gọi là AudioServicesCreateSystemSoundID().

Khối hoàn thành đảm bảo âm thanh được phát và hoàn thành phát trước khi nó được xử lý.

Các vấn đề liên quan