2009-10-03 38 views
7

Tôi đã thêm âm thanh Tock của iPhone để bàn phím tùy chỉnh của riêng tôi như thế này:Làm thế nào để có được âm thanh bàn phím iPhone 3,1 bị bóp nghẹt?

NSString *path = [[NSBundle bundleWithIdentifier:@"com.apple.UIKit"] pathForResource:@"Tock" ofType:@"aiff"]; 
SystemSoundID soundID; 
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID); 
AudioServicesPlaySystemSound(soundID); 
// we don't dispose of the sound to keep the sound in the cache for the next time 
//AudioServicesDisposeSystemSoundID(soundID); 

Trong hệ điều hành iPhone 3.1, tuy nhiên, những âm thanh bàn phím Tock đã bị bóp nghẹt, ví dụ im lặng hơn nhiều so với các âm thanh khác và hơn 3.0. Âm thanh của phương pháp của tôi vẫn rất lớn và ở âm lượng tối đa. Làm thế nào tôi có thể nhận được cùng một khối lượng như bàn phím mặc định của iPhone?

Nhân tiện, âm thanh Tock trong Twitterrific bị bóp nghẹt một cách thích hợp.

Cheers

MrMage

+0

Và bạn đã cung cấp cách tắt tính năng này, phải không? Hầu hết mọi người tôi biết hoàn toàn ghét những loại âm thanh đó. – AlBlue

+0

Tất nhiên là tôi đã làm. – MrMage

+0

Chỉ cần thêm tiền thưởng cho nó. Tôi muốn có một giải pháp hoàn chỉnh cho cảm giác này (ví dụ: âm thanh) chính xác như thật. – MrMage

Trả lời

5

Sử dụng 0x450 vì SystemSoundID hoạt động cho tôi với âm lượng chính xác - lưu ý rằng nó không tôn trọng tùy chọn bật/tắt bàn phím.

Tôi không chắc chắn về cách thức di chuyển này - nó hoạt động với tôi trên trình mô phỏng và trên iPod Touch thế hệ thứ 3. Tôi nghi ngờ nó hoạt động trên tất cả các thiết bị nhưng có thể thay đổi mà không cần thông báo trong bản cập nhật phần mềm.

Tôi nhận số này bằng cách đặt điểm ngắt trên AudioServicesPlaySystemSound và nhấn phím bàn phím thông thường - hướng dẫn lắp ráp đầu tiên sao chép SystemSoundID vào sổ đăng ký, vì vậy bạn có thể nhìn thấy nó trong chế độ xem Đăng ký trong trình gỡ lỗi.

+0

Cảm ơn bạn, đó là chính xác những gì tôi muốn. – MrMage

+0

Apple sẽ từ chối điều này hoặc liệu cửa hàng ứng dụng có hợp pháp không? – user3246173

2

Sử dụng AVAudioPlayer thay vì AudioServices và bạn sẽ có quyền truy cập vào một tài sản âm lượng cho phép bạn giảm và nâng cao khối lượng của âm thanh.

+0

Và tôi phải cài đặt âm lượng nào để bắt chước phím Tock của iPhone? – MrMage

+0

Các khối lượng tài sản là một phao - bất cứ nơi nào giữa 0,0 và 1,0, mặc dù nó có vẻ như các giá trị trên 1.0 sẽ sản xuất khối lượng cao hơn. Như bạn có thể nhận thấy, âm thanh bàn phím thay đổi khi bạn thay đổi âm lượng của iPhone. Tôi sẽ bắt đầu ở mức 0.5 và xem cách so sánh đó. – mahboudz

+0

Tôi đã sử dụng ProLevel (http://www.katsurashareware.com/pgs/prolevel.html) để đo mức đầu ra từ bàn phím mặc định và một nơi nào đó giữa 0,45 và 0,5 đã làm việc ra – esad

1

Điều này có lẽ là ngu ngốc, nhưng tôi đã thấy trong mã mẫu khác cũng có tệp âm thanh tick. Và từ các ví dụ tôi đã thấy, đó là ofType:@"caf", vì vậy cũng đáng để thử. Xin lỗi nếu tôi đang đi.

1

Bằng cách sử dụng chế độ xem đầu vào của khách hàng hỗ trợ UIInputViewAudioFeedback, bạn có thể phát âm thanh với âm lượng chính xác và tôn trọng cài đặt âm thanh nhấp chuột của người dùng.

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