在应用程序后台实现视频文件播放的更好方法是什么?

时间:2016-02-01 18:02:42

标签: ios video appstore-approval

我确实需要使用在后台播放的视频文件来实现iOS应用程序。

E.g。在第一个viewController上,一个视频应该在背景中播放而不是一些照片或彩色背景。 在第二个viewController上另一个视频应该在背景中播放而不是一些照片或彩色背景。 等等。

实现此目的的最佳方法是什么? *在项目中导入这些视频文件更好吗? *或者将它们存储在一些外部地方并通过网络播放是否更好?

从AppStore批准的角度和从Apple Guidlines的角度来看 - 这种情况与视频是否正确?或者,最好避免在移动应用程序中使用视频?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

找到解决方案,通过AVPlayer

中的原生AVFoundation播放本地视频文件

1.Import AVFoundation:

#import <AVFoundation/AVFoundation.h>

2.使用玩家的属性:

@property (nonatomic) AVPlayer *avPlayer;

3.将视频文件添加到“视频”文件夹中,并将“视频”添加到项目

4.初始化播放器

NSString *filepath = [[NSBundle mainBundle] pathForResource:@"shutterstock_v885172.mp4" ofType:nil inDirectory:@"Video"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
self.avPlayer = [AVPlayer playerWithURL:fileURL];
self.avPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone;

AVPlayerLayer *videoLayer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer];
videoLayer.frame = self.view.bounds;
videoLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.view.layer addSublayer:videoLayer];

[self.avPlayer play];

5.订阅活动 - 视频确实播放到最后

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:[self.avPlayer currentItem]]; 

6.在相关方法中将视频播放恢复到最开始

- (void)itemDidFinishPlaying:(NSNotification *)notification {
    AVPlayerItem *player = [notification object];
    [player seekToTime:kCMTimeZero];
}