1

タップしたときにサウンドを再生する必要があるカスタム ボタンを .storyboard 内に作成しました (サウンドボードではなく、ボタンを押したときにカスタム オーディオ ファイルを再生するだけです)。
これを可能にするストーリーボード エディタのサウンド オプションはありますか? そうでない場合、他にどのようにこれを達成できますか?

4

2 に答える 2

5

ストーリーボードでは、「オーディオ」をボタンに割り当てることはできません。ただし、できることは、関数で非常に単純な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のドキュメントを確認してください(例:バッファリング、一時停止など)

于 2012-09-01T00:11:13.140 に答える
2

を使用して音量を設定すると、上記のコードが機能しました

[プレーヤー setVolume:1.0];

私がそれをするまで、それは機能していませんでした。

于 2014-07-23T19:01:08.317 に答える