我确实需要使用在后台播放的视频文件来实现iOS应用程序。
E.g。在第一个viewController上,一个视频应该在背景中播放而不是一些照片或彩色背景。 在第二个viewController上另一个视频应该在背景中播放而不是一些照片或彩色背景。 等等。
实现此目的的最佳方法是什么? *在项目中导入这些视频文件更好吗? *或者将它们存储在一些外部地方并通过网络播放是否更好?
从AppStore批准的角度和从Apple Guidlines的角度来看 - 这种情况与视频是否正确?或者,最好避免在移动应用程序中使用视频?
提前谢谢。
答案 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];
}