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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

Q&A

解決済

1回答

4752閲覧

AVKitPlayerViewControllerを使った動画再生。

karnel_81

総合スコア12

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

0グッド

0クリップ

投稿2016/02/22 02:25

編集2016/02/22 03:57

動画を再生するテストアプリを作成しています。
環境はxcodeとswiftを使っています。
ストーリーボードにAVKitPlayerViewControllerを配置し、クラスの名前をYourViewControllerにして以下のファイルYourViewController.swiftを作りました。

import AVFoundation
import AVKit

class YourViewController : AVPlayerViewController {

override func viewDidLoad() { super.viewDidLoad() 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() }

}

swiftファイルなどと同じ階層にhomevideo.mp4という動画ファイルを置いてシミュレーターでプレイしてみたのですが、動画が再生されません。(再生ボタンなどは表示されます。)
原因が分かる方は是非教えていただけませんでしょうか、宜しくお願い致します。

<追記>
指摘いただいた通りに修正し、クリーンしてから実行すると以下のエラーが表示されました。
fatal error: unexpectedly found nil while unwrapping an Optional value
どうやら

let path = NSBundle.mainBundle().pathForResource("hogevideo", ofType: "mp4")!

の部分で止まっているようです。
おそらく動画ファイルが発見されなかったということなのでしょうが、ファイルを置く場所が良くなかったのでしょうか。
その場合、どの場所に置くと良いのでしょうか。
お力を貸していただければ幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

最後の二行、ローカルに作ったAVPlayerで再生してもどうしようもないわけで、Storyboardに配置したAVPlayerViewControllerのプレイヤで再生しないといけません。

swift

1self.player = AVPlayer(playerItem: playerItem) 2self.player!.play()

AVPlayerViewControllerへのクラス(YourViewController)の登録もお忘れなく。
Custom Class

投稿2016/02/22 02:59

fuzzball

総合スコア16731

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

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

karnel_81

2016/02/22 03:13

お返事ありがとうございます。 指摘いただいた箇所を訂正して、シミュレータで起動してみたのですが、今度は以下のようなエラーメッセージが出て再生されませんでした。 2016-02-22 12:08:11.865 MovieTest[12986:1115518] Unknown class YourViewController in Interface Builder file. 2016-02-22 12:08:12.133 MovieTest[12986:1115518] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) ( "<NSAutoresizingMaskLayoutConstraint:0x7fdef62486d0 h=-&- v=-&- _UIBackdropContentView:0x7fdef3e498a0.width == _UIBackdropView:0x7fdef3e529d0.width>", "<NSLayoutConstraint:0x7fdef3cb9c50 H:|-(14)-[UILabel:0x7fdef3ebb970'Slide your finger down to...'] (Names: '|':_UIBackdropContentView:0x7fdef3e498a0 )>", "<NSLayoutConstraint:0x7fdef3cb9ca0 H:[UILabel:0x7fdef3ebb970'Slide your finger down to...']-(14)-| (Names: '|':_UIBackdropContentView:0x7fdef3e498a0 )>", "<NSLayoutConstraint:0x7fdef6218420 H:|-(0)-[_UIBackdropView:0x7fdef3e529d0] (Names: '|':UIView:0x7fdef3e52860 )>", "<NSLayoutConstraint:0x7fdef6218470 H:[_UIBackdropView:0x7fdef3e529d0]-(0)-| (Names: '|':UIView:0x7fdef3e52860 )>", "<NSLayoutConstraint:0x7fdef62182a0 H:|-(0)-[UIView:0x7fdef3e52860] (Names: '|':AVAlphaUpdatingView:0x7fdef3e49720 )>", "<NSLayoutConstraint:0x7fdef62182f0 H:[UIView:0x7fdef3e52860]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7fdef3e49720 )>", "<NSLayoutConstraint:0x7fdef6169a00 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7fdef3e49720(0)]>" ) もしよろしければ。どのように修正すれば良いのか教えていただければ幸いです。
fuzzball

2016/02/22 03:55

クラス名を間違っていると思われますので確認してみて下さい。 (クラス名を入力するとき、Yと一文字入力した時点で補完されると思うのですが)
karnel_81

2016/02/22 04:01

プロジェクトのクリーンなどを試したら、そのエラーは解消されました。 その後、動画の再生画面に行こうとすると、 fatal error: unexpectedly found nil while unwrapping an Optional value と出てクラッシュします。 これは動画のファイルを置く場所が悪いのでしょうか?
fuzzball

2016/02/22 04:20 編集

ファイルはプロジェクトに登録しているでしょうか? ファイルをコピーするだけではダメです。 Project Navigatorを表示しておいて、そこにmp4ファイルをドラッグするか、メニューの[File]-[Add Files to "(プロジェクト名)"...]でファイルを選んで、プロジェクトにファイルを追加して下さい。
karnel_81

2016/02/22 04:25

解決いたしました。 丁寧に指導していただいてえ、ありがとうございます! 非常に助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問