【问题标题】:What is the better way to implement video files playback in application background?在应用程序后台实现视频文件播放的更好方法是什么?
【发布时间】:2016-04-01 17:52:37
【问题描述】:

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

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

实现这一点的最佳方法是什么? * 在项目中导入这些视频文件更好吗? * 还是将它们存储在某个外部位置并通过网络播放更好?

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

提前谢谢你。

【问题讨论】:

  • 这绝对是很模糊的。如果不知道您的视频的具体细节(持续时间、大小、比特率......),您有多少,如果您有针对不同设备(例如 iPhone/iPad)的特定版本,以及它们的真正目的是什么,将很难提供一个有效的答案。 App Store Review Guidelines中有几条关于视频的规定,相信你已经找到了。
  • 了解哪种方法正确的一个好方法是考虑如果您是使用该应用程序的人,您会怎么想,无论是在您拥有 Wi-Fi 的情况下,还是在当您使用蜂窝网络时...
  • “本地存储比从网络播放更好”是一个单独的问题,取决于多种因素:文件大小、设备上可用的存储空间、用户观看的方式/位置等。他们在在家里使用 64GB iPad 连接 Wi-Fi?还是带着 2G 连接和 16GB iPhone 5 在偏远地区旅行?

标签: ios video appstore-approval


【解决方案1】:

通过来自AVFoundation 的原生AVPlayer 找到本地视频文件播放的解决方案

1.导入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];
}

【讨论】:

    猜你喜欢
    • 2011-05-24
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 2013-05-11
    • 2014-06-11
    相关资源
    最近更新 更多