2015-09-29 10 views
18
पर खेल

मैं निम्नलिखित कोड का उपयोग कर tvOS पर एक वीडियो खेल रहा हूँ:AVPlayer त्रुटि 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

क्या आप सिम्युलेटर में या ऐप्पल टीवी देव किट में ऐप चला रहे हैं?

टीवीओएस के लिए, अधिकांश एवी संबंधित बग/क्रैश का सामना करना पड़ता है जब मैं ऐप्पल टीवी सिम्युलेटर का उपयोग कर रहा हूं - एक बार जब मैं भौतिक डिवाइस पर ऐप चलाता हूं, तो वे गायब हो जाते हैं।

+0

हाँ, मैं इसे सिम्युलेटर पर चला रहा हूं। मैंने सोचा कि यह मामला हो सकता है। दुर्भाग्यवश मेरे पास अभी तक इसका परीक्षण करने के लिए ऐप्पल टीवी नहीं है। फिर भी धन्यवाद। – Wojtek

+2

सिम्युलेटर में एक ही त्रुटि थी, डिवाइस पर ठीक काम करता है। – tagy22

+0

@Wojtek क्या तुमने मेरा जवाब देखा? मुझे कोड सिम्युलेटर में ठीक काम कर रहा है। – ABeanSits

4

मुझे वीडियो लोड करने और सिम्युलेटर पर स्थानीय रूप से खेलने के लिए एक वीडियो मिल रहा है। मैंने इसे स्विफ्ट में लिखा लेकिन आप इसे काफी आसान अनुवाद करने में सक्षम होना चाहिए।

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 ही है और यह कोड है कि (अधिसूचना-भाग की तरह) की जरूरत नहीं है निकालने का प्रयास करें तो हम यह मान सकते हैं जो हिस्सा विफल हो रहा है।

मैं एक्सकोड 7.1beta3 का उपयोग कर रहा हूं।

1

आप AVPlayerViewController को उपclass नहीं करना चाहते हैं। the docs से:

IMPORTANT

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

इसके बजाय, एक नियमित रूप से UIViewController उपयोग करते हैं, और फिर इसे करने के लिए AVPlayerViewController की दृष्टि देते हैं।

@ एबीनसिट्स कोड का उपयोग करके (मैं रूबीमोशन का उपयोग कर रहा हूं, लेकिन आप ओबज-सी में अनुवाद कर सकते हैं) काम किया। यहां मेरा संस्करण है:

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