[Swift3]ボタンを押した時に効果音を鳴らす

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
Swift

AVAudioPlayerクラスを使うことで、効果音や音楽を再生することができる。

とりあえず効果音を再生させる

フレームワークをインポートする

General→Linked Frameworks and Librariesに「AVFoundation.framework」を追加。
import文の追加も忘れずに。

AVFoundation.frameworkのインポート

AVAudioPlayerのインスタンスを作る

viewDidLoadにて以下の処理を行う。

  1. サウンドファイルのパスを生成
  2. 1で生成したパスを食わせてAVAudioPlayerのインスタンスを作成
  3. prepareToPlay()メソッドで再生する準備をする

なお再生するファイルは写真の場所に入れておく。

サウンドファイルの置き場所

test.mp3が今回再生するファイル



なお、複数種類の効果音・音楽を鳴らしたいときはその種類の数だけインスタンスを作成する必要がある。

再生する

作成したAVAudioPlayerのplay()メソッドを実行するだけ。

繰り返し音が鳴るように改良する

このままでも効果音の再生はできるが、連続して再生する場合に「先に再生した音が鳴り終わっていないと再生されない」という不都合がある。

続けて何度も音を鳴らしたい場合は、currentTimeプロパティに0を設定して再生位置を先頭に戻してからplay()メソッドを実行する。

※再生中の音を強制的に先頭に戻す処理のため、「元々鳴っていた音も最後まで再生させたい」というケースには対応できない…

音量・パン(左右バランス)をいじってみる

音量を調節する

volumeプロパティで音量の調節ができる。Float型で、1.0がデフォルトの音量。0にすると無音になる。

パンを調節する

panプロパティでパンの調節ができる。Float型で、0がデフォルト(中央で鳴る)。-1.0で左側、1.0で右側。

完成したソース

ボタンを押すたびに音が鳴る機能を想定。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。