質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

2回答

6080閲覧

AVPlayerViewControllerによる動画再生開始/完了の取得

m_orishi

総合スコア68

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2016/04/21 09:20

実現したいこと

Swiftにて、AVPlayerViewControllerを利用して動画再生を行う際に、
・動画の再生開始
・動画の再生完了(最後まで再生された)
を契機に処理を行いたいです。

動画の再生完了に関しては、

swift

1NSNotificationCenter.defaultCenter().addObserver(self, 2 selector: #selector(HogeViewController.movieEnd(_:)), 3 name: AVPlayerItemDidPlayToEndTimeNotification, 4 object: nil)

のような形式で対応が可能かと思うのですが、再生開始に関しても何らかの形でタイミングを取得出来ますでしょうか?
※上記処理に関しても、より良い方法があれば御意見頂けますと助かります。

環境

Xcode7.3(7D175)
iPhoneアプリ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

ほぼ開始直後のタイミングを取れました。

swift

1//selfはAVPlayerViewControllerです 2 3let url = NSURL() 4let playerItem = AVPlayerItem(URL: url) 5self.player = AVPlayer(playerItem: playerItem) 6//ここまではお好きなように 7 8//再生位置が1nsになるのを監視 9let boundary = [NSValue(CMTime: CMTimeMake(1, Int32(NSEC_PER_SEC)))] //1ns 10self.player?.addBoundaryTimeObserverForTimes(boundary, queue: nil, usingBlock: { 11 //再生開始! 12 print("start!") 13})

必要なくなったらremoveTimeObserver()して下さい。

投稿2016/04/27 02:37

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2016/04/27 02:43 編集

(deleted)
m_orishi

2016/04/27 03:58

アンサーありがとうございます。 再生時間を利用した検知のアイデア素晴らしいです。 意図通りの動作ができそうですので、ベストアンサーとさせて頂きます。
guest

0

AVPlayerのrateプロパティを監視すればできそうです。再生速度が変わるたびに値が変わるようです。
通常速度で再生時は1.0、停止すると0.0になるようです。

投稿2016/04/26 07:53

pebble8888

総合スコア390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2016/04/26 09:11

監視するならplayingプロパティでいいと思います。
pebble8888

2016/04/26 11:46

AVAudioPlayerならplayingですが、AVPlayerViewControllerには設定できないのではないでしょうか。
fuzzball

2016/04/26 12:28

失礼しました。AVAudioPlayerにもrateプロパティがあったので勘違いしてしまいました。
pebble8888

2016/04/26 14:27

この2つのクラスは紛らわしいですよね。 どちらもあまり使ったことがないので、違いがいまいち分かってないですが。
m_orishi

2016/04/27 03:56

アンサーありがとうございます。再生速度で再生/停止を監視というのは直感的じゃないですね…。今後の参考にさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問