2010-10-27 49 views
6

Tôi đang ở giai đoạn đầu của việc phát triển ứng dụng iPad đầu tiên của mình và đơn giản tôi đã sử dụng AudioServicesPlaySystemSound và các chức năng liên quan để phát âm thanh. Mã của tôi dựa trên lớp SoundEffect từ ví dụ Metronome của Apple.AudioServicesPlaySystemSound không hoạt động trên thiết bị iPad

Triệu chứng cụ thể là tôi có thể nghe thấy âm thanh trong trình mô phỏng nhưng không nghe thấy trên thiết bị, mặc dù tôi đã xác minh rằng tôi có thể nghe thấy âm thanh trong các ứng dụng khác trên thiết bị. AudioServicesCreateSystemSoundID đang trả lại số nhận dạng âm thanh hợp lệ, vì vậy nó không đơn giản như tên của tệp âm thanh có trường hợp khác, ví dụ: "sound.mp3" so với "Sound.mp3".

Tôi nhận ra rằng tôi có thể cần phải chuyển sang một thư viện khác như OpenAL vì các lý do không liên quan, nhưng tôi muốn biết điều gì đang xảy ra ở đây. Có ai có bất cứ đề nghị? Có chức năng nào tôi có thể gọi để nhận giá trị OSStatus hay gì đó không?

* BUMP - Tôi đã làm việc trên các dự án khác trong vài tuần qua nhưng tôi đã quay lại điều này ngay bây giờ và tôi thực sự đánh giá cao câu trả lời. Cảm ơn.

Trả lời

2

Tôi không nghĩ rằng bạn có thể phát tệp mp3 trên thiết bị bằng cách sử dụng AudioServicesPlaySystemSound. Hãy xem documentation để biết các loại tệp được hỗ trợ. Tôi không chắc chắn lý do tại sao họ chơi một cách chính xác trong giả lập, nhưng tôi đã có cùng một vấn đề. Hãy thử sử dụng AVAudioPlayer thay thế:

NSError *error; 
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource: @"sound" withExtension: @"mp3"] error:&error]; 
if (error) { 
    NSLog(@"Error creating audio player: %@", [error userInfo]); 
} else { 
    [audioPlayer play]; 
} 

[audioPlayer release]; 
5

Tôi đã xem qua câu hỏi này thông qua tìm kiếm của Google. Vấn đề của tôi là chính xác như đã nêu trong tiêu đề của câu hỏi này: "AudioServicesPlaySystemSound không hoạt động trên thiết bị iPad". Tuy nhiên, mô tả của vấn đề là khác nhau.

Chỉ cần đặt, sau khi nâng cấp iPad lên iOS 4.3, AudioServicesPlaySystemSound ngừng hoạt động.

Cuối cùng tôi đã tìm ra giải pháp cho phiên bản của sự cố, vì vậy hy vọng điều này sẽ giúp người khác.

Đi tới ứng dụng Cài đặt trên iPad và chọn Chung. Nhấn vào Âm thanh. Đảm bảo "Thay đổi bằng nút" được đặt thành BẬT. Điều này sẽ khắc phục sự cố.

+0

Tôi đang chạy iOS 4.3.1 và tôi không có tùy chọn "Thay đổi với nút" trong Chung-> Âm thanh. – iPadDeveloper2011

+0

Đã lâu rồi kể từ khi điều này xảy ra, nhưng tôi nghĩ nó chỉ có thể áp dụng cho iPad 2. Họ cũng có thể đã thay đổi hành vi trong 4.3.1 - phản hồi này áp dụng cho 4.3. –

+0

Tôi đã sử dụng iTunes để thay đổi âm thanh .m4v thành một .aif, đây là mã hóa "được hỗ trợ". Điều đó hiệu quả. – iPadDeveloper2011

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