【Swift入門】iOSでオーディオと動画ファイルを再生する方法を徹底解説
iOSアプリでオーディオや動画を再生する方法を理解することは、現代のアプリ開発において非常に重要です。ゲームアプリからSNS、ミュージックプレイヤーまで、ほぼすべてのアプリが何らかの形で音声や動画を扱っています。
この記事では、Swiftを使ってオーディオファイルと動画ファイルを再生する手順を、初心者にもわかりやすいようにステップごとに解説します。
それでは始めましょう。
開発の準備
ステップ1:プロジェクトの作成
Xcodeを起動し、「New Project」→「Single View Application」を選択して、プロジェクト名を「AudioVideo」として新規プロジェクトを作成します。
ステップ2:UIの配置
Main.storyboardを開き、3つのボタンを配置して、下図のように名前を付けます。

ステップ3:アウトレット接続
3つのボタンに対して@IBOutletを作成し、「stop」「playButton」「videoButton」という名前を付けます。名前の通り、それぞれ音声の停止、音声の再生、動画の再生に使用します。
AVFoundationフレームワークについて
ステップ4:AVFoundationとは
今回はAppleが提供するAVFoundationフレームワークを使用します。AVFoundationは、Appleプラットフォーム上でオーディオビジュアルメディアのキャプチャ、処理、合成、制御、インポート、エクスポートといった幅広いタスクを担う、4つの主要な技術領域を統合したフレームワークです。
ステップ5:フレームワークの追加
プロジェクトの「Build Phases」を開き、下図のようにAVFoundationフレームワークを追加します。

ステップ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()
}
}
-
Android・iOSで動画をループ再生する3つの方法【MX Player/VLC/Vloop】
AndroidやiOSで動画をループ再生したいと思ったことはありませんか?お気に入りの動画を繰り返し観たいとき、すべての動画プレイヤーにループ機能が備わっているわけではないため、やり方が分からず戸惑うこともあります。しかし心配はいりません。この記事では、iOSやAndroidで動画をループ再生するための簡単な方法を、手順付きでわかりやすく解説します。 Android・iOSで動画をループ再生する方法 お気に入りの曲や動画クリップが頭から離れず、何度も繰り返し視聴したいという経験は誰にでもあるでしょう。そんなときに役立つのが動画のループ再生機能です。この機能を使えば、どんな動画でも自動的に繰り
-
【保存版】Android・iOSでYouTubeをバックグラウンド再生する方法
YouTubeは世界で最も視聴されている動画プラットフォームですが、スマホの画面をロックした状態(=バックグラウンド)で音楽を再生するのは意外と難しいものです。画面をロックした瞬間にYouTubeは自動的に再生を停止してしまうため、ロック中に動画や音楽を聴き続けることができません。しかも、YouTubeアプリ内にはこの問題を解決する設定項目が用意されていません。Googleは有料サブスクリプションという選択肢を提供していますが、対応地域が限られていたり月額費用がかかったりと、誰もが気軽に使えるものではありませんでした。なぜYouTubeをバックグラウンドで再生したいのか?バックグラウンド再生が