16

でカスタムキーボードを作成しましたUIView。しかし、キーボードのクリック音は聞こえませんでした。そこで、以下のコードを試してみましたが、何も聞こえません。そのキーボードのクリック音を再生するにはどうすればよいですか?

NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
                                               pathForResource:@"Tock"
                                               ofType:@"aiff"]];
    AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
    [click setVolume:0.15f];
    [click play];

そしてまた私は次のものを試しました。

AudioServicesPlaySystemSound(0x450);

どうやって?

4

4 に答える 4

35

これを試して:

[[UIDevice currentDevice] playInputClick];

ご了承ください

この方法を使用して、ユーザーがカスタム入力またはキーボードアクセサリビューをタップしたことに応答して、標準のシステムキーボードクリックを再生します。クリックは、ユーザーが[設定]> [サウンド]でキーボードクリックを有効にしている場合、および入力ビュー自体が有効で表示されている場合にのみ再生されます。

入力クリックのカスタム入力またはアクセサリビューを有効にするには、次の2つの手順を実行します。

入力ビュークラスでUIInputViewAudioFeedbackプロトコルを採用します。enableInputClicksWhenVisibleデリゲートメソッドを実装して、YESを返します。

于 2012-04-24T13:39:11.353 に答える
5

これを機能させることはできませんでしたが、これは私にとってはうまくいきました:

#import <AudioToolbox/AudioToolbox.h>

AudioServicesPlaySystemSound(1104);

しかし、それでも私はaをサブクラス化し、それにプロトコルをUIButton追加する必要がありました。UIInputViewAudioFeedback

于 2016-12-07T13:24:31.183 に答える
5

Swiftで、次のように入力ビューに拡張機能を追加します。

extension UIInputView : UIInputViewAudioFeedback {

    public var enableInputClicksWhenVisible: Bool {
        return true
    }

}

ボタンのアクションメソッドで、次の関数を呼び出します。

    UIDevice.current.playInputClick()

次のプロパティをinfo.plistに追加します。

NSExtension | NSExtensionAttributes | RequestsOpenAccess = YES

于 2017-07-22T18:35:31.153 に答える
0

迅速に、キーボードの効果音を再生するための信じられないほど簡単な方法が実際にあります。

最初:

import AudioToolbox

その後、効果音が必要なときにこれを使用します。

AudioServicesPlaySystemSound(0x450)
于 2021-01-18T14:46:15.080 に答える