2015-09-29 3 views
18

で遊んでいる間:それを修正する方法任意のアイデアをAVPlayerエラー、私は次のコードを使用してtvOS上の動画を再生しようtvOS

NSString *filePath = [[NSBundle mainBundle] pathForResource:name ofType:@"mov"]; 
NSURL *fileUrl = [NSURL fileURLWithPath:filePath]; 

self.player = [AVPlayer playerWithURL:fileUrl]; 
AVPlayerLayer *avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player]; 

avPlayerLayer.frame = CGRectMake(0, 0, view.frame.size.width, view.frame.size.height); 
[view.layer addSublayer:avPlayerLayer]; 

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(replayMovie:) name:AVPlayerItemDidPlayToEndTimeNotification object:nil]; 

[self.player play]; 

しかし、私は次のようなエラーに

ERROR: >aqme> 718: MEMixerChannel::EnableProcessor: failed to open processor type 0x705f6571

を取得しています?

答えて

19

あなたは、シミュレータまたはApple TV開発キットでアプリを実行していますか?

tvOSでは、私が遭遇したほとんどのAV関連のバグ/クラッシュは、Apple TVシミュレータを使用しているときにのみ発生します。物理デバイスでアプリケーションを実行すると、それらは消える傾向があります。

+0

ええ、私はシミュレータ上で実行しています。私はそれが事実かもしれないと思った。残念ながら、私はアプレットTVをまだテストしていません。とにかく、ありがとう。 – Wojtek

+2

シミュレータで同じエラーが発生しましたが、デバイス上で正常に動作します。 – tagy22

+0

@Wojtekあなたは私の答えを見ましたか?私は、シミュレータでうまく動作するコードを得た。 – ABeanSits

4

私はシミュレータでローカルにロードして再生するビデオを取得しています。 私はそれをSwiftに書きましたが、あなたはそれをかなり簡単に翻訳できるはずです。

if let path = NSBundle.mainBundle().pathForResource("4", ofType:"mp4") { 
     let url = NSURL(fileURLWithPath: path) 
     let videoPlayer = AVPlayer(URL: url) 
     let playerLayer = AVPlayerLayer(player: videoPlayer) 
     playerLayer.frame = self.view.frame 
     self.view.layer.addSublayer(playerLayer) 
     videoPlayer.play() 
    } 

fileUrlがないnilであることを確認してくださいと(通知一部のように)必要とされていないコードを削除してみてくださいので、私たちは失敗しているどの部分を推測することができます。

私はXcode 7.1beta3を使用しています。

1

AVPlayerViewControllerをサブクラス化したくありません。 the docsから:代わりに

IMPORTANT

Do not subclass AVPlayerViewController. Overriding this class’s methods is unsupported and results in undefined behavior.

、定期のUIViewControllerを使用し、それにAVPlayerViewControllerのビューを添付してください。

@ AbeanSitsのコード(私はRubyMotionを使用していますが、Obj-Cに翻訳することができます)を使用しました。ここに私のバージョン:

def viewDidAppear(_) 
    super 

    @player_controller = AVPlayerViewController.alloc.init 
    @player_controller.player = AVPlayer.alloc.initWithURL(current_url) 
    self.addChildViewController(@player_controller) 
    self.view.addSubview(@player_controller.view) 
    @player_controller.view.frame = self.view.frame 
    @player_controller.player.play 
    end 
関連する問題