1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Swiftで音声再生アプリを作ってみた!!

Last updated at Posted at 2021-09-29

##初めに
###音楽再生アプリとは・・・?
その名の通り、ボタンを押すことで音声を再生するアプリです。
こういったものはゲームのホーム画面でキャラクターをタップした時などのに使われる技術です。
今回は、簡易的に音声が再生できるアプリを開発しました。

※SwiftはXcode ver.12.51で行っています。

##実際に作ってみる!
###Main.storyboardの設定

1.ボタンを挿入する。
2.ボタンの位置を固定する。

まず、右上の+ボタンからButtonを選択肢し、下の図のように配置します。
そして、図のように下のalignボタンを押し、下の二つの欄にチェックを入れます。
こうすることによってボタンが中心へと配置されます。
スクリーンショット 2021-09-29 13.01.33.png

###音声を取り込む

注意
音声はどんなものでもいいです。しかし、__mp3ファイル__にしてください!
拡張子だけ変えたものはNG!!

1.用意した音声を左のNavigatorにドラッグアンドドロップします。
2.Navigatorにファイル名が表示されれば取り込み完了です。

今回私は"sample().mp3"というファイルを使用しました。

###ViewController.swiftの設定

ViewController.swift
import UIKit
import AVFoundation

class ViewController: UIViewController {
    //ボタンの設定
    @IBOutlet weak var button0: UIButton!

    //mp3の設定
    let m0 = Bundle.main.bundleURL.appendingPathComponent("sample().mp3")
    var m00 = AVAudioPlayer()
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
    //ボタンが押された時
   @IBAction func button0(_ sender: UIButton) {
     do{
         m00 = try AVAudioPlayer(contentsOf: m0)//オーディオをセット
         m00.play()//再生
     }catch{
         print("エラー")
   }
  }

ViewControllerは以上の通りです。この時、下の図にあるようにボタンを左クリックしながら、ViewControllerにはり、ボタンの変数名を記述すれば大丈夫です。

※ViewController上のボタンとstoryboardのボタンがつながっていないと__ボタンが作動しない__ために注意!。
スクリーンショット 2021-09-29 13.36.06.png

##応用
ゲームでは一つのセリフしか喋らないわけではないですよね?
ということでランダムで複数の音声を再生するようにします。

1.ランダム変数を作成する。
2.If文で条件分岐することによって行なっています。

こういったものにセリフがあるといいですよね?
なので余裕があればstoryboardのボタンの近くにlabelを貼り、そのラベルにセリフを書くようにするとうまく行きます。

ViewController.swift
      var label1 = UILabel()  //ラベルの設定
      let randomInt = Int.random(in: 1..<8)//ランダムの設定

  @IBAction func button0(_ sender: UIButton) {
      if(randomInt == 1){
        do{
           m00 = try AVAudioPlayer(contentsOf: m0)//オーディオをセット
           m00.play()//再生
         }catch{
           print("エラー")
         }
       label1.text = "こんにちは"
      }

      else if(randomInt == 2){
         do{
           m11 = try AVAudioPlayer(contentsOf: m0)//オーディオをセット
           m11.play()//再生
         }catch{
         print("エラー")
         }
       label1.text = "さようなら"
      }
    //以下に続く
   }

##最後に

いかがでしょうか?
思った通りに動きましたか?
これくらいのプログラムは慣れれば一時間程度あれば作れてしまいます。
ぜひ、暇な時に軽く作ってみてはいかがでしょうか?

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?