タップしたときにサウンドを再生する必要があるカスタム ボタンを .storyboard 内に作成しました (サウンドボードではなく、ボタンを押したときにカスタム オーディオ ファイルを再生するだけです)。
これを可能にするストーリーボード エディタのサウンド オプションはありますか? そうでない場合、他にどのようにこれを達成できますか?
2 に答える
ストーリーボードでは、「オーディオ」をボタンに割り当てることはできません。ただし、できることは、関数で非常に単純なAVAudioPlayerを使用することです。
ライブラリを追加
AVAudioPlayer を使用するには、最初に 2 つのライブラリ/フレームワークをプロジェクトに追加する必要があります。これらのフレームワークには、実際のプレーヤーのベースコードが含まれており、私たち (アプリの作成者) はそれを使用できます。
xCode でプロジェクトを選択し、Build Phasesに移動します。[バイナリをライブラリにリンク] を選択します。小さな[+]アイコンを押して、フレームワークを追加します。
- オーディオツールボックス
- AV財団
フレームワーク
ここで、これら 2 つのフレームワークを実際に使用することをコードに伝える必要があります。コントローラーの .H ファイルを開き、上部に以下を追加します。
#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>
イベント + プレイヤー
Touch Up Inside などの UIButton のイベントの 1 つ (ストーリーボード経由) を新しい IBAction 関数 (playSound など) にバインドします。
イベントをバインドすることで、ユーザーがボタンを押した場合にこの関数/コードを実行することをアプリケーションに伝えます。
次に、新しく作成した IBAction 関数 (playSound など) 内に、MP3 を含むプレーヤーを作成して再生するためのコードを追加します。
- (IBAction)playSound:(id)sender
{
// Load in a audio file from your bundle (all the files you have added to your app)
NSString *audioFile = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"mp3"];
// Convert string to NSURL
NSURL *audioURL = [NSURL fileURLWithPath:audioFile];
// Initialize a audio player with the URL (the mp3)
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:nil];
// Start playing
[player play];
}
これが正しい方向に進むのに役立つことを願っていますか?
AVAudioPlayerが「再生」以外に持っているすべての機能/メソッドについては、Appleのドキュメントを確認してください(例:バッファリング、一時停止など)
を使用して音量を設定すると、上記のコードが機能しました
[プレーヤー setVolume:1.0];
私がそれをするまで、それは機能していませんでした。