2009-10-03 5 views
7

は、私はこのような独自のカスタムキーボードにiPhoneのタック音を追加しました:iPhone OS 3.1では、しかし、キーボードトク音がこもりされたiPhone OS 3.1のキーボード音が消えるのはどうですか?

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); 

、例えば他の音よりもはるかに静かで、3.0に入っています。私の方法の音はまだ非常に大きく、最大音量である。 iPhoneのデフォルトのキーボードと同じ音量をどうやって得ることができますか?

ところで、TwitterrificのTockサウンドは適切に消音されています。

乾杯

MrMage

+0

あなたはそれをオフにする方法を提供しましたか?私が知っているほとんどの人は、そのような種類の音が絶対に嫌いです。 – AlBlue

+0

もちろん私はしました。 – MrMage

+0

ただの賞金が追加されました。私は実際のものとまったく同じように感じる(例えば、音)このための完全なソリューションを持っていたいと思います。 – MrMage

答えて

5

SystemSoundIDとして0x450を使用すると、適切な音量で私の作品が再生されます。キーボードのクリックのオン/オフの設定は考慮されません。

私はどのように移植性が良いのか分かりません。それはシミュレータとiPod Touch 3rd genで動作します。私はそれがすべてのデバイスで動作すると思われますが、ソフトウェアアップデートで予告なく変更する可能性があります。

AudioServicesPlaySystemSoundにブレークポイントを設定し、通常のキーボードキーを押してこの番号を取得しました。最初のアセンブリ命令は、SystemSoundIDをレジスタにコピーするので、デバッガの[レジスタ]ビューで確認できます。

+0

ありがとうございました。 – MrMage

+0

Appleはこれを拒否しますか、それともアプリストアは合法ですか? – user3246173

2

代わりAudioServicesの使用AVAudioPlayer、あなたが下げ、音の音量を上げることを可能にするボリュームのプロパティにアクセスする必要があります。

+0

iPhoneのキーボードトックを模倣するために、どの音量を設定する必要がありますか? – MrMage

+0

ボリュームのプロパティは浮動小数点型です(0.0から1.0の間の任意の値ですが、1.0より大きい値はより大きなボリュームを生成します)。 iPhoneの音量を変更すると、キーボードの音色が変化します。私は0.5から始め、それがどのように比較されるかを見ていきます。 – mahboudz

+0

私はProLevel(http://www.katsurashareware.com/pgs/prolevel.html)を使用して、デフォルトのキーボードからの出力レベルを測定しました.0.45と0.5の間のどこかで出力されました – esad

1

これはおそらく愚かですが、他のサンプルコードでは、tickサウンドファイルもあることがわかりました。そして私が見た例からは、それはofType:@"caf"なので、これも試してみる価値があります。申し訳ありません。

1

UIInputViewAudioFeedbackをサポートする顧客入力ビューを使用すると、正しい音量でサウンドを再生し、ユーザーのキークリック音の設定を尊重することができます。

関連する問題