重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
操作方法:
公司主营业务:成都网站设计、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出乾安免费做网站回馈大家。
需要做的准备
本教程要求您的Xcode版本为7.0以上,OS X为Yosemite(10.10.x)以上。倘若您还想在您的设备上体验一下这个简易的工程,请确保您的设备可以满足ReplayKit所需要的软硬件要求,当然您还需在GitHub上下载工程源码。
启动录制
1、ReplayKit框架提供了RPScreenRecorder类以及类单例方法sharedRecorder()供您进行游戏录制。这个实例对象负责检查设备的记录功能,包括启动、停止以及丢弃记录,并可以选择启动麦克风让玩家录制真人语音解说!
2、打开从GitHub下载的初始工程中GameViewController.swift文件。在文件顶部,导入ReplayKit框架。
代码:
import ReplayKit
3、接下来,在用户按下Start Recording按钮时调用GameViewController类中的startRecording(_:)这个方法开始录制。
代码:
func startRecording(sender: UIButton) {
if RPScreenRecorder.sharedRecorder().available {
RPScreenRecorder.sharedRecorder().startRecordingWithMicrophoneEnabled(true, handler: { (error:
NSError?) - Void in
if error == nil { // Recording has started
sender.removeTarget(self, action: "startRecording:", forControlEvents: .TouchUpInside)
sender.addTarget(self, action: "stopRecording:", forControlEvents: .TouchUpInside)
sender.setTitle("Stop Recording", forState: .Normal)
sender.setTitleColor(UIColor.redColor(), forState: .Normal)
} else {
// Handle error
}
})
} else {
// Display UI for recording being unavailable
}
}
跟着代码一步一步走。我们通过sharedRecorder()方法访问RPScreenRecorder实例以检查我们的设备录制功能是否可用。
如果功能可用,我们便可以通过调用startRecordingWithMicrophone(_:handler:)方法启动一段记录。此方法的第一个参数为BOOL类型值,表示是否开启设备的麦克风,第二个参数则为完成后回调的代码块。如果出现一些错误,RepalyKit框架可以通过代码块返回给你并提示您错误的信息。如果一切准备就绪,我们改变按钮的式样告知用户录制已开始,再次点击可以停止录制。
4、编译运行你的应用程序并尝试按下绿色按钮,你会看到类似一团火焰的粒子效果,如果你点击Start Recording,你会看到这样的警告,如图:
注意,这个警告每次会在你开始录制时出现。然而,一旦用户选择了其中一种偏好设置,系统会在接下来的8分钟记住这个选择。
在你选择选项之后,Start Recording按钮变为了红色的Stop Recording按钮。
停止,丢弃和编辑记录
1、现在,我们的app可以开始ReplayKit的录制,是时候去了解在完成的时候编写怎样的代码了。在GameViewController类中实现stopRecording(_:)这个方法:
func stopRecording(sender: UIButton) {
RPScreenRecorder.sharedRecorder().stopRecordingWithHandler { (previewController: RPPre
viewViewController?, error: NSError?) - Void in
if previewController != nil {
let alertController = UIAlertController(title: "Recording", message: "Do you wish to discard or view your gameplay recording?", preferredStyle: .Alert)
let discardAction = UIAlertAction(title: "Discard", style: .Default) { (action: UIAlertAction) in
RPScreenRecorder.sharedRecorder().discardRecordingWithHandler({ () - Void in
// Executed once recording has successfully been discarded
})
}
let viewAction = UIAlertAction(title: "View", style: .Default, handler: { (action: UIAlertAction) - Void in
self.presentViewController(previewController!, animated: true, completion: nil)
})
alertController.addAction(discardAction)
alertController.addAction(viewAction)
self.presentViewController(alertController, animated: true, completion: nil)
sender.removeTarget(self, action: "stopRecording:", forControlEvents: .TouchUpInside)
sender.addTarget(self, action: "startRecording:", forControlEvents: .TouchUpInside)
sender.setTitle("Start Recording", forState: .Normal)
sender.setTitleColor(UIColor.blueColor(), forState: .Normal)
} else {
// Handle error
}
}
}
2、继续一步一步地研究这个方法的实现。我们还是用RPScreenRecorder的实例对象调用stopRecordingWithHandler(_:)这个方法,这次在回调的块中,我们通过检查previewController存不存在来判断app完成录制的成功与否。
3、我们创建一个UIAlertController,它有两个action,一个为丢弃记录,另一个为回看记录。选择丢弃记录则调用discardRecordingWithHandler(_:)这个方法。要注意的是,这个方法只能在确保录制成功地完成后才可以调用,要是在录制进行的时候就调用的话,虽然系统不会抛出任何错误,但是也不会丢弃任何记录。
4、选择回看记录,我们就呈现previewController视图,它是RPPreviewController类的实例,从stopRecordingWithHandler(_:)方法回调块中返回给我们,用来回看、编辑或分享记录。这个previewController视图控制器实例是唯一能够访问到由ReplayKit生成的视频文件,它的职能就是负责保存/分享记录。
5、最后,别忘了恢复startRecording按钮以便再次另一段记录的开始!
6、编译和运行你的应用程序并点击开始录制。一旦按下Stop Recording按钮,你会看到如下的弹出窗:
7、如果你选择了view选项,会呈现如下的视图控制器:
8、在这里,你可以编辑你的录像并可以点击Save按钮选择转存到你的“照片”中。当然你也可以点击左下角的分享按钮分享你的录制视频。
需要注意的是,不管是由于设计的原因还是ReplayKit框架的bug,在保存到“照片”的时候没有确认的过程就直接进行了保存。
排除界面元素
1、你可能已经注意到了顶部和底部的按钮在应用录制的记录中都是可见的,它们包含在了最终的视频记录中。当RepalyKit录制你的应用时,它毫不遗漏地记录了应用程序在UIWindow中渲染的一切视图,任何细节都不掩饰地记录。还好,RepalyKit可以在来电话是或用户输入时的界面停止录制。
2、从记录中排除的用户界面元素,你需要把它们放置在单独的UIWindow实例中。让我们研究下它是如何工作的。在GameViewController类中添加一个属性buttonWindow,类型为UIWindow!
3、新的视图控制器唯一不同于之前的是窗口顶端的交互部分。它确保了交互控件正确的显示与用户交互的正确执行。
4、再次运行你的应用,并进行新的录制,你会发现界面按钮都隐藏了:
5、在即将完成时,你还需要注意使用RepalyKit时的一些关键的要点。
每个应用程序在任何时间只可以存储一条记录。一旦你开始录制一条新的记录,如果之前的记录已存在,那么新的会自动覆盖掉之前的记录!
仔细选择要从用户的录制交互界面排除的元素,把选择界面的元素放置在单独的窗口中,包括用以选择的控件或者偏离游戏本身那些不重要的东西。如:记录指示器,虚拟控制或菜单按钮。
你不能直接访问最终的视频文件。通过用户回看视图控制器previewViewController你才可以使ReplayKit的记录存储的数据可见。但由于苹果对用户隐私保护,ReplayKit的记录数据都应由应用程序来访问。如果你想上传这些记录到你自己的服务器,你需要创建一个共享的扩展视图控制器来完成,并从previewViewController中呈现出来。
ReplayKit也支持家长控制功能。即使设备当前后台没有其他的进程在运行,录制功能是否可用仍然收到家长控制的授权。这就意味着你要保证在录制开始检查功能是否被允许使用。
ReplayKit简介
在iOS 9中,ReplayKit 是一款全新的框架,可谓是游戏开发者(开发商)的福音。它可以让玩家更便捷地记录游戏进度或数据以及分享的功能。除此之外更强大的是:ReplayKit为用户(玩家)提供了一个全功能的交互界面,用户可用它来编辑或制作自己的视频剪辑!
ReplayKit不需要太大电量损耗和性能损耗就可以产出高清的视频记录。ReplayKit支持使用A7芯片以上,操作系统为iOS 9或更高版本的设备。
一、下载iOS10测试版固件:
找到自己的设备型号(机身背部),前往《苹 果ios10哪里下载?苹 果ios10固件下载地址 》下载对应的固件,请解压以获得.ipsw文件为准。
二、安装升级iOS9测试版:
目前升级安装的有两种方法,一种是通过iTunes升级,主要步骤是打开最新版iTunes,同时按下“Shift+更新”选择相对应的固件,接下来安装一步步来安装更新。
第二种方法就是描述文件OTA更新,通过安装对应描述文件,安装重启之后进入设置检查系统更新下载安装即可,比较简单。后面小编会详细给出这种安装方法教程。
三、激活iPhone/iPad:
升级完iOS10测试版之后,开机进入系统后需要跟随向导设置一下。若发现设备无法激活,则要反思自己的设备是不是在开发者设备名单之中了。
北京时间昨夜,苹果推出了iOS
10的首个公测版(iOS
10
Public
Beta
1),和每一次公测版升级一样,用户需要前往苹果Beta版软件计划页面进行注册,登录你的苹果ID和密码,点击同意下载安装iOS10公测版协议的描述文件。
当然,你也可以直接在你的iOS设备上下载iOS
Beta
Software
Profile描述文件(下载地址见本文)
安装描述文件(如不安装无法检测到系统更新)成功后重启设备,重启之后进入设置-通用-软件更新
系统会检查到有iOS
10
Public更新,点击即可在线升级。
小编提醒,由于iOS
10公测版与iOS
10开发者预览版Beta2的版本号一致,均为14a5297c,所以两个系统实际是一样的,仍然不稳定,所以请提前备份好自己的资料以免发生意外。
点此下载iOS
Beta
Software
Profile描述文件:
iOS
10支持设备列表如下:
iPhone5、iPhone5c、iPhone5s、iPhoneSE、iPhone6、iPhone6
Plus、iPhone6s和iPhone6s Plus
iPad
4、iPad
Air、iPad
Air2、iPad
Pro、iPad
mini
2\3\4、iPod
touch
6
下载对应型号的 iOS10 beta1 固件,将 iTunes 更新到最新版,
打开 iTunes 并连接设备,点击左上角图标进入设备摘要页。
点击【立即备份】备份设备上重要数据,以防万一。
然后按住键盘上的 Shift(Option),同时鼠标点击 iTunes 界面的【检查更新】按钮,
再选择对应版本的 iOS10 beta1 固件进行升级。
同步推温馨提示:千万注意是选择更新而不是恢复,否则手机里的数据会被清空
操作完成成功升级到iOS10 beta1,然后在设备上按照提示激活即可开启全新 iOS10 beta1