iOS
 Computer >> コンピューター >  >> プログラミング >> iOS

【Swift入門】iOSでオーディオと動画ファイルを再生する方法を徹底解説

iOSアプリでオーディオや動画を再生する方法を理解することは、現代のアプリ開発において非常に重要です。ゲームアプリからSNS、ミュージックプレイヤーまで、ほぼすべてのアプリが何らかの形で音声や動画を扱っています。

この記事では、Swiftを使ってオーディオファイルと動画ファイルを再生する手順を、初心者にもわかりやすいようにステップごとに解説します。

それでは始めましょう。

開発の準備

ステップ1:プロジェクトの作成

Xcodeを起動し、「New Project」→「Single View Application」を選択して、プロジェクト名を「AudioVideo」として新規プロジェクトを作成します。

ステップ2:UIの配置

Main.storyboardを開き、3つのボタンを配置して、下図のように名前を付けます。

【Swift入門】iOSでオーディオと動画ファイルを再生する方法を徹底解説

ステップ3:アウトレット接続

3つのボタンに対して@IBOutletを作成し、「stop」「playButton」「videoButton」という名前を付けます。名前の通り、それぞれ音声の停止、音声の再生、動画の再生に使用します。

AVFoundationフレームワークについて

ステップ4:AVFoundationとは

今回はAppleが提供するAVFoundationフレームワークを使用します。AVFoundationは、Appleプラットフォーム上でオーディオビジュアルメディアのキャプチャ、処理、合成、制御、インポート、エクスポートといった幅広いタスクを担う、4つの主要な技術領域を統合したフレームワークです。

ステップ5:フレームワークの追加

プロジェクトの「Build Phases」を開き、下図のようにAVFoundationフレームワークを追加します。

【Swift入門】iOSでオーディオと動画ファイルを再生する方法を徹底解説

ステップ6:メディアファイルの配置

プロジェクトディレクトリに、再生したいmp3(オーディオ)ファイルを追加します。動画を再生する場合は、mp4ファイルも同様にプロジェクトに含めておいてください。

コードの実装

ステップ7:フレームワークのインポート

ViewController.swiftにフレームワークをインポートします。

import AVFoundation

ステップ8:AVAudioPlayerオブジェクトの作成

オーディオ再生を担当するAVAudioPlayerのインスタンスを作成します。

var avPlayer = AVAudioPlayer()

ステップ9:再生ボタンの実装

playボタンのIBActionに以下のコードを記述します。Bundleからmp3ファイルのURLを取得し、AVAudioPlayerを初期化して再生を開始します。

@IBAction func playButton(_ sender: Any) {
    guard let url = Bundle.main.url(forResource: "sample", withExtension: "mp3")
    else {
        return
    }
    do {
        avPlayer = try AVAudioPlayer(contentsOf: url)
        avPlayer.play()
    }
    catch {
    }
}

ステップ10:停止ボタンの実装

stopボタンのIBActionには、次の1行を記述するだけで音声を停止できます。

@IBAction func stop(_ sender: Any) {
    avPlayer.stop()
}

ステップ11:動画再生ボタンの実装

videoボタンには、AVPlayerとAVPlayerLayerを使って画面上に動画を表示・再生する以下のコードを記述します。

@IBAction func videoButton(_ sender: Any) {
    let path = Bundle.main.path(forResource: "one", ofType: "mp4")
    let videoUrl = URL(fileURLWithPath: path!)
    let player = AVPlayer(url: videoUrl as URL)
    let playerLayer = AVPlayerLayer(player: player)
    playerLayer.frame = self.view.bounds
    self.view.layer.addSublayer(playerLayer)
    player.play()
}

ここまで実装できたら、アプリを実行してオーディオと動画が正しく再生されるか確認してみましょう。

完全なコード例

参考までに、ViewController.swiftの完全なコードを以下に示します。

import UIKit
import AVFoundation
class ViewController: UIViewController {
    var avPlayer = AVAudioPlayer()
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    @IBAction func stop(_ sender: Any) {
        avPlayer.stop()
    }
    @IBAction func playButton(_ sender: Any) {
        UIScreen.main.brightness = 0.6
        guard let url = Bundle.main.url(forResource: "sample", withExtension: "mp3")
        else {
            return
        }
        do {
            avPlayer = try AVAudioPlayer(contentsOf: url)
            avPlayer.play()
        }
        catch {
        }
    }
    @IBAction func videoButton(_ sender: Any) {
        let path = Bundle.main.path(forResource: "one", ofType: "mp4")
        let videoUrl = URL(fileURLWithPath: path!)
        let player = AVPlayer(url: videoUrl as URL)
        let playerLayer = AVPlayerLayer(player: player)
        playerLayer.frame = self.view.bounds
        self.view.layer.addSublayer(playerLayer)
        player.play()
    }
}
  1. Android・iOSで動画をループ再生する3つの方法【MX Player/VLC/Vloop】

    AndroidやiOSで動画をループ再生したいと思ったことはありませんか?お気に入りの動画を繰り返し観たいとき、すべての動画プレイヤーにループ機能が備わっているわけではないため、やり方が分からず戸惑うこともあります。しかし心配はいりません。この記事では、iOSやAndroidで動画をループ再生するための簡単な方法を、手順付きでわかりやすく解説します。 Android・iOSで動画をループ再生する方法 お気に入りの曲や動画クリップが頭から離れず、何度も繰り返し視聴したいという経験は誰にでもあるでしょう。そんなときに役立つのが動画のループ再生機能です。この機能を使えば、どんな動画でも自動的に繰り

  2. 【保存版】Android・iOSでYouTubeをバックグラウンド再生する方法

    YouTubeは世界で最も視聴されている動画プラットフォームですが、スマホの画面をロックした状態(=バックグラウンド)で音楽を再生するのは意外と難しいものです。画面をロックした瞬間にYouTubeは自動的に再生を停止してしまうため、ロック中に動画や音楽を聴き続けることができません。しかも、YouTubeアプリ内にはこの問題を解決する設定項目が用意されていません。Googleは有料サブスクリプションという選択肢を提供していますが、対応地域が限られていたり月額費用がかかったりと、誰もが気軽に使えるものではありませんでした。なぜYouTubeをバックグラウンドで再生したいのか?バックグラウンド再生が