Submit Search
Upload
Swiftではじめる動画再生
•
10 likes
•
12,134 views
Yusuke Ariyoshi
Follow
Swiftビギナーズ勉強会 第7回 での説明用です。サンプルコードはこちら https://github.com/ariiyu/VideoPlayerSample
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 29
Download now
Download to read offline
Recommended
Appiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テスト
yumi_chappy
unity オブジェクトを動かす
unity オブジェクトを動かす
Atelier Frameworks
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
UnityTechnologiesJapan002
Jenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
そのアプリ開発PowerAppsでやるか否かの指針?(※個人的見解)
そのアプリ開発PowerAppsでやるか否かの指針?(※個人的見解)
Teruchika Yamada
IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針
Ken Morishita
Appium 2.0 ではじめるモバイルアプリテスト
Appium 2.0 ではじめるモバイルアプリテスト
Masayuki Wakizaka
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
Unity Technologies Japan K.K.
Recommended
Appiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テスト
yumi_chappy
unity オブジェクトを動かす
unity オブジェクトを動かす
Atelier Frameworks
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
UnityTechnologiesJapan002
Jenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
そのアプリ開発PowerAppsでやるか否かの指針?(※個人的見解)
そのアプリ開発PowerAppsでやるか否かの指針?(※個人的見解)
Teruchika Yamada
IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針
Ken Morishita
Appium 2.0 ではじめるモバイルアプリテスト
Appium 2.0 ではじめるモバイルアプリテスト
Masayuki Wakizaka
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
Unity Technologies Japan K.K.
プロダクトオーナー2.0
プロダクトオーナー2.0
toshihiro ichitani
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
日本マイクロソフト株式会社
UnityでUI開発を高速化した件
UnityでUI開発を高速化した件
Grenge, Inc.
現場ではこう使った~Office 365 と Azure Functions、Azure Data Factory、Azure SQL Database,...
現場ではこう使った~Office 365 と Azure Functions、Azure Data Factory、Azure SQL Database,...
Masayuki Ota
今さら聞けないソフトウエアエンジアニアリング(要求編)
今さら聞けないソフトウエアエンジアニアリング(要求編)
豆寄席 (株式会社豆蔵)
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
Masayuki Wakizaka
ぼんやりした要件とテストケースから出てくる地獄のようなゲームテスト自動化導入
ぼんやりした要件とテストケースから出てくる地獄のようなゲームテスト自動化導入
keysh2
SharePoint 開発でできること 2019年9月版
SharePoint 開発でできること 2019年9月版
Hiroaki Oikawa
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Web Services Japan
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
Amazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオン
Amazon Web Services Japan
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
Yusuke Suzuki
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
飛び道具ではないMetal #iOSDC
飛び道具ではないMetal #iOSDC
Shuichi Tsutsumi
自動化を支えるCI/CDパイプライン
自動化を支えるCI/CDパイプライン
JunichiMitsunaga
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Takunori Minamisawa
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Kazuyuki Miyake
Microsoft 365 を使い、よりよい業務環境の在り方と仕事への向き合い方を考えよう
Microsoft 365 を使い、よりよい業務環境の在り方と仕事への向き合い方を考えよう
Ai Hirano
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
Fumiya Sakai
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
Amazon Web Services Japan
6秒動画アプリ Vineの作り方
6秒動画アプリ Vineの作り方
Hiramatsu Ryosuke
iOS 10 new Camera
iOS 10 new Camera
Gaprot
More Related Content
What's hot
プロダクトオーナー2.0
プロダクトオーナー2.0
toshihiro ichitani
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
日本マイクロソフト株式会社
UnityでUI開発を高速化した件
UnityでUI開発を高速化した件
Grenge, Inc.
現場ではこう使った~Office 365 と Azure Functions、Azure Data Factory、Azure SQL Database,...
現場ではこう使った~Office 365 と Azure Functions、Azure Data Factory、Azure SQL Database,...
Masayuki Ota
今さら聞けないソフトウエアエンジアニアリング(要求編)
今さら聞けないソフトウエアエンジアニアリング(要求編)
豆寄席 (株式会社豆蔵)
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
Masayuki Wakizaka
ぼんやりした要件とテストケースから出てくる地獄のようなゲームテスト自動化導入
ぼんやりした要件とテストケースから出てくる地獄のようなゲームテスト自動化導入
keysh2
SharePoint 開発でできること 2019年9月版
SharePoint 開発でできること 2019年9月版
Hiroaki Oikawa
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Web Services Japan
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
Amazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオン
Amazon Web Services Japan
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
Yusuke Suzuki
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
飛び道具ではないMetal #iOSDC
飛び道具ではないMetal #iOSDC
Shuichi Tsutsumi
自動化を支えるCI/CDパイプライン
自動化を支えるCI/CDパイプライン
JunichiMitsunaga
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Takunori Minamisawa
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Kazuyuki Miyake
Microsoft 365 を使い、よりよい業務環境の在り方と仕事への向き合い方を考えよう
Microsoft 365 を使い、よりよい業務環境の在り方と仕事への向き合い方を考えよう
Ai Hirano
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
Fumiya Sakai
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
Amazon Web Services Japan
What's hot
(20)
プロダクトオーナー2.0
プロダクトオーナー2.0
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
UnityでUI開発を高速化した件
UnityでUI開発を高速化した件
現場ではこう使った~Office 365 と Azure Functions、Azure Data Factory、Azure SQL Database,...
現場ではこう使った~Office 365 と Azure Functions、Azure Data Factory、Azure SQL Database,...
今さら聞けないソフトウエアエンジアニアリング(要求編)
今さら聞けないソフトウエアエンジアニアリング(要求編)
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
ぼんやりした要件とテストケースから出てくる地獄のようなゲームテスト自動化導入
ぼんやりした要件とテストケースから出てくる地獄のようなゲームテスト自動化導入
SharePoint 開発でできること 2019年9月版
SharePoint 開発でできること 2019年9月版
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Amazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオン
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
飛び道具ではないMetal #iOSDC
飛び道具ではないMetal #iOSDC
自動化を支えるCI/CDパイプライン
自動化を支えるCI/CDパイプライン
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Microsoft 365 を使い、よりよい業務環境の在り方と仕事への向き合い方を考えよう
Microsoft 365 を使い、よりよい業務環境の在り方と仕事への向き合い方を考えよう
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
Similar to Swiftではじめる動画再生
6秒動画アプリ Vineの作り方
6秒動画アプリ Vineの作り方
Hiramatsu Ryosuke
iOS 10 new Camera
iOS 10 new Camera
Gaprot
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
Kentaro Matsumae
AppStoreのアプリ動画App Previewsの作り方
AppStoreのアプリ動画App Previewsの作り方
Kosuke Ogawa
BaseViewControllerは作りたくない
BaseViewControllerは作りたくない
今城 善矩
iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1
Kaname Noto
2015年に「画面テストの動画録画」を作って「流行れ!」 と願ったが、流行らんかった上ロストした話 #seleniumjp
2015年に「画面テストの動画録画」を作って「流行れ!」 と願ったが、流行らんかった上ロストした話 #seleniumjp
Kazuhito Miura
Windows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイト
normalian
iOSで動画からスクショを撮る方法
iOSで動画からスクショを撮る方法
Tomo Ita
サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更する
toyship
Everyplay/UnityAds入門
Everyplay/UnityAds入門
Yasuyuki Kamata
Videoshare introduce
Videoshare introduce
videoshare_jp
SI-Toolkit for Web Testing ハンズオン勉強会
SI-Toolkit for Web Testing ハンズオン勉強会
yuichi_kuwahara
Swift入門
Swift入門
聡 中川
pythonでつくるiPhoneアプリ
pythonでつくるiPhoneアプリ
Kazufumi Ohkawa
animation1.0
animation1.0
sleipnir002
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
Shuichi Tsutsumi
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
Kentaro Matsumae
Power point movie
Power point movie
Minoru Uchida
Unity Ads のいろは 動画広告の紹介とコーディング例
Unity Ads のいろは 動画広告の紹介とコーディング例
Yasuyuki Kamata
Similar to Swiftではじめる動画再生
(20)
6秒動画アプリ Vineの作り方
6秒動画アプリ Vineの作り方
iOS 10 new Camera
iOS 10 new Camera
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
AppStoreのアプリ動画App Previewsの作り方
AppStoreのアプリ動画App Previewsの作り方
BaseViewControllerは作りたくない
BaseViewControllerは作りたくない
iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1
2015年に「画面テストの動画録画」を作って「流行れ!」 と願ったが、流行らんかった上ロストした話 #seleniumjp
2015年に「画面テストの動画録画」を作って「流行れ!」 と願ったが、流行らんかった上ロストした話 #seleniumjp
Windows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイト
iOSで動画からスクショを撮る方法
iOSで動画からスクショを撮る方法
サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更する
Everyplay/UnityAds入門
Everyplay/UnityAds入門
Videoshare introduce
Videoshare introduce
SI-Toolkit for Web Testing ハンズオン勉強会
SI-Toolkit for Web Testing ハンズオン勉強会
Swift入門
Swift入門
pythonでつくるiPhoneアプリ
pythonでつくるiPhoneアプリ
animation1.0
animation1.0
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
Power point movie
Power point movie
Unity Ads のいろは 動画広告の紹介とコーディング例
Unity Ads のいろは 動画広告の紹介とコーディング例
Swiftではじめる動画再生
1.
Swiftではじめる動画再生 Yusuke Ariyoshi 2015.5.9
2.
自己紹介 • Yusuke Ariyoshi •
フリーランスiOSエンジニア • Swift暦(半年∼1年) • 受託開発、個人アプリ制作(10作ほど)
3.
アプリで動画を再生する
4.
Demo
5.
iOSで動画を再生する • AVPlayer • AVPlayerViewController •
MPMoviePlayerController • MPMoviePlayerViewController
6.
iOSで動画を再生する • AVPlayer • AVPlayerViewController •
MPMoviePlayerController • MPMoviePlayerViewController AVFoundation.framework AVKit.framework
7.
iOSで動画を再生する • AVPlayer • AVPlayerViewController •
MPMoviePlayerController • MPMoviePlayerViewController MediaPlayer.framework
8.
iOSで動画を再生する • AVPlayer • AVPlayerViewController •
MPMoviePlayerController • MPMoviePlayerViewController UIと表示、iOS8で追加 UI付き動画再生 modal表示などに利用 動画再生
9.
iOSで動画を再生する • AVPlayer • AVPlayerViewController •
MPMoviePlayerController • MPMoviePlayerViewController 今回利用するクラス
10.
Main.Storyboard D&D
11.
YourViewController.swift import AVFoundation import AVKit class
YourViewController: AVPlayerViewController { override func viewDidLoad() { super.viewDidLoad() ∼ }
12.
YourViewController.swift // 動画ファイルのURLを取得 let path
= NSBundle.mainBundle().pathForResource("hogevideo", ofType: "mp4")! let url = NSURL(fileURLWithPath: path) // アイテム取得 let playerItem = AVPlayerItem(URL: url) // 生成 let player = AVPlayer(playerItem: playerItem) // 再生 player.play()
13.
UIの外観
14.
カスタマイズするなら • AVPlayer • 自作UI 以下を自分で実装 ・Play,
Pause等のボタン ・経過時間表示 ・動画時間表示 (or 残時間表示) ・プログレス表示 ・音量表示 ・各タッチハンドリング ・etc
15.
Swiftのオプショナル
16.
YourViewController.swift // 動画ファイルのURLを取得 let path
= NSBundle.mainBundle().pathForResource("hogevideo", ofType: "mp4")! let url = NSURL(fileURLWithPath: path)
17.
YourViewController.swift // 動画ファイルのURLを取得 let bundle
= NSBundle.mainBundle() let path = bundle.pathForResource("hogevideo", ofType: "mp4")! let url = NSURL(fileURLWithPath: path)
18.
YourViewController.swift // 動画ファイルのURLを取得 let bundle
= NSBundle.mainBundle() let path = bundle.pathForResource("hogevideo", ofType: "mp4")! let url = NSURL(fileURLWithPath: path)
19.
YourViewController.swift // 動画ファイルのURLを取得 let bundle
= NSBundle.mainBundle() let path = bundle.pathForResource("hogevideo", ofType: "mp4") let url = NSURL(fileURLWithPath: path) // コンパイルエラー
20.
YourViewController.swift // 動画ファイルのURLを取得 let bundle
= NSBundle.mainBundle() let path = bundle.pathForResource("hogevideo", ofType: "mp4") let url = NSURL(fileURLWithPath: path!) //これはOK
21.
細かく見てみると…
22.
class NSBundle class func
pathForResource(name: String?, ofType ext: String?, inDirectory bundlePath: String) -> String?
23.
class NSBundle class func
pathForResource(name: String?, ofType ext: String?, inDirectory bundlePath: String) -> String?
24.
class NSURL init?(fileURLWithPath path:
String)
25.
class NSURL init?(fileURLWithPath path:
String)
26.
YourViewController.swift // 動画ファイルのURLを取得 let bundle
= NSBundle.mainBundle() let path: String? = bundle.pathForResource("hogevideo", ofType: "mp4") let url = NSURL(fileURLWithPath: path) // Stringを受け取る。String?はコンパイルエラー
27.
YourViewController.swift // 動画ファイルのURLを取得 let bundle
= NSBundle.mainBundle() let path: String? = bundle.pathForResource("hogevideo", ofType: "mp4") let url = NSURL(fileURLWithPath: path!) // OK
28.
Sample Code • 全画面表示、埋め込み表示、 リピート再生
(通知→頭出し) を実装しました • Githubレポジトリ https://github.com/ariiyu/VideoPlayerSample
29.
Thanks!
Download now