2016-05-03 3 views
0

Я использую MPMoviePlayerController для воспроизведения небольшого видео в качестве вступительного видео моего приложения. Я использовал следующий код, и это работает нормально. Но видео продолжает играть. и снова перезапустить. И даже когда я нажимаю кнопку «Готово», она не удаляет супервизор. Я также хочу, чтобы мой статус-бар был видимым, и я сохранил его полупрозрачным, но никакого результата. Я искал в google и переполнении стека, но по-прежнему не помогал. Любая помощь будет очень заметной.MPMoviePlayerController не работает должным образом

Я назвал [self playMovie] методом viewDidAppear

-(void)playMovie 
{ 
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"avc_intro" ofType:@"mp4"]]; 
moviePlayer = [[MPMoviePlayerController alloc] 
       initWithContentURL:url]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:moviePlayer]; 
     name:MPMoviePlayerWillExitFullscreenNotification 
              object:moviePlayer]; 

moviePlayer.controlStyle = MPMovieControlStyleDefault; 
moviePlayer.shouldAutoplay = YES; 
[self.view addSubview:moviePlayer.view]; 
[moviePlayer setFullscreen:YES animated:YES]; 
} 

- (void) moviePlayBackDidFinish:(NSNotification*)notification 
{ 
MPMoviePlayerController *videoplayer = [notification object]; 
[[NSNotificationCenter defaultCenter] 
removeObserver:self 
name:MPMoviePlayerPlaybackDidFinishNotification 
object:videoplayer]; 

if ([videoplayer 
    respondsToSelector:@selector(setFullscreen:animated:)]) 
{ 
    [videoplayer.view removeFromSuperview]; 
} 
} 

ответ

2

Лучше использование this. MPMoviePlayerController официально устаревшей прошивка 9.

2

[self playMovie] вызова из viewDidload, потому что viewDidAppear снова вызывается при удалении MPMoviePlayerController так будет снова начать.

Update:

Вы должны представить MPMusicPlayerController вместо добавить его вид супер зрения и dissmiss его доработки

Надеются, что это поможет :)

+0

если я его вызываю в viewDidLoad не играет – iDeveloper

+0

проверить мое обновление в ответе – Lion

+0

Thanx приятель :) @Lion – iDeveloper

0

использования AVPlayerViewController и мой код отдавание ниже,

Объект-C код: Объявление AVPlayerViewController *playerViewController;

playerViewController = [[AVPlayerViewController alloc]init]; 
    playerViewController.view.frame = videoView.bounds; 
    [playerViewController.view setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)]; 
    playerViewController.player = [AVPlayer playerWithURL:[NSURL URLWithString:viewModel.videoUrl]]; 
    [videoView addSubview:playerViewController.view]; 
    [playerViewController.player play]; 
    playerViewController.player.actionAtItemEnd = AVPlayerActionAtItemEndNone; 

Не забудьте рамочные приведены ниже,

#import <UIKit/UIKit.h> 
#import <AVFoundation/AVFoundation.h> 
#import <AVKit/AVKit.h> 
#import <MediaPlayer/MediaPlayer.h> 

быстры Код:

 let type : String! = "mp4" 
     let targetURL : String? = NSBundle.mainBundle().pathForResource("Official Apple MacBook Air Video YouTube", ofType: "mp4") 

     let videoURL = NSURL(fileURLWithPath:targetURL!) 


     let player = AVPlayer(URL: videoURL) 
     let playerController = AVPlayerViewController() 

     playerController.player = player 
     self.addChildViewController(playerController) 
     self.playView.addSubview(playerController.view) 
     playerController.view.frame = playView.bounds 

     player.play() 

Не забудьте рамочные приведены ниже,

import UIKit 
import AVKit 
import AVFoundation 
import MediaPlayer 

он работает для меня и надеется, что он полезен

Смежные вопросы