Ekranımı yayınladıktan sonra ekranı kaydetmeyi denediğimde sorun yaşıyorum ama çalışmıyor. Ekranımı kaydettiğimde de aynı şey gerçekleşir ve sonra ekranı canlı yayınlamaya çalışırım. Onları beraber yapmaya çalışmıyorum btw. Bu bittikten sonra diğerini kullanmaya çalışıyorum. Kod veya daha fazla bilgi görmeniz gerekiyorsa bana bildirin. Swift 3'te ve yeni replay kit frameworkünü kullanıyorum. Teşekkürler!Tekrar oynatma ekranı kaydetmeye ve sonra ekranı yayınlamaya izin veriyor mu?
DÜZENLEME: o 10.1 veya olmasın itibariyle çözümlenmiş olup olmadığını BU, emin değilim ben bu ReplayKit bir hata olduğuna inanıyoruz KOD KULLANMA IM
//LIVE STREAM REPLAYKIT=====================================================================
func broadcastActivityViewController(_ broadcastAVC: RPBroadcastActivityViewController, didFinishWith broadcastController: RPBroadcastController?, error: Error?) {
print("=====hello delegate \(broadcastController?.broadcastURL) (error)")
self.broadcastController = broadcastController
self.broadcastController?.delegate = self
broadcastAVC.dismiss(animated: true) {
self.broadcastController?.startBroadcast(handler: { error in
print("start broadcast \(error)")
print("\(broadcastController?.broadcastExtensionBundleID)")
print("==url=\(broadcastController?.broadcastURL)")
print("==serviceInfo=\(broadcastController?.serviceInfo)")
//This is called when the broadcast is live
})
}
}
func broadcastController(_ broadcastController: RPBroadcastController, didFinishWithError error: Error?) {
print("broadcastController====delegate")
let alert = UIAlertController(title: "Alert", message: "There was an error broadcasting your screen. Please try again", preferredStyle: UIAlertControllerStyle.alert)
// show the alert
self.view!.window?.rootViewController!.present(alert, animated: true, completion: nil)
alert.addAction(UIAlertAction(title: "Okay", style: UIAlertActionStyle.destructive, handler: { action in
// add action
}))
}
func broadcastController(_ broadcastController: RPBroadcastController, didUpdateServiceInfo serviceInfo: [String : NSCoding & NSObjectProtocol]) {
print("broadcastController====didUpdateServiceInfo")
}
//LIVE STREAM REPLAYKIT=========================================================
//RECORD SCREEN REPLAYKIT-------------------------------------------------------------------
func startRecoding() {
let recorder = RPScreenRecorder.shared()
if recorder.isAvailable {
recorder.startRecording(handler: { (error) in
if error == nil { // Recording has started
} else {
// Handle error
print("Dont Allow Recording")
}
})
} else {
print("Did not record screen")
//if iphone or ipad doesnt support replaykit
// create the alert
let alert = UIAlertController(title: "Alert", message: "Please make sure your device supports ReplayKit!", preferredStyle: UIAlertControllerStyle.alert)
// show the alert
self.view!.window?.rootViewController!.present(alert, animated: true, completion: nil)
alert.addAction(UIAlertAction(title: "Try Again!", style: UIAlertActionStyle.destructive, handler: { action in
// add action
}))
}
}
func stopRecording() {
let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.stopRecording(handler: { (previewViewController: RPPreviewViewController?, error) in
if previewViewController != nil {
print("stopped recording")
previewViewController!.previewControllerDelegate = self
let alertController = UIAlertController(title: "Recording", message: "Tap view to watch, edit, share, or save your screen recording!", preferredStyle: .alert)
let viewAction = UIAlertAction(title: "View", style: .default, handler: { (action: UIAlertAction) -> Void in
self.view?.window?.rootViewController?.present(previewViewController!, animated: true, completion: nil)
})
alertController.addAction(viewAction)
self.previewViewController = previewViewController!
self.previewViewController.modalPresentationStyle = UIModalPresentationStyle.fullScreen
self.view?.window?.rootViewController!.present(alertController, animated: true, completion: nil)
}
else {
print("recording stopped working")
//create the alert================================
let alert = UIAlertController(title: "Alert", message: "Sorry, there was an error recording your screen. Please Try Again!", preferredStyle: UIAlertControllerStyle.alert)
// show the alert
self.view!.window?.rootViewController!.present(alert, animated: true, completion: nil)
alert.addAction(UIAlertAction(title: "Try Again!", style: UIAlertActionStyle.destructive, handler: { action in
// add action
}))
}
})
}
func previewControllerDidFinish(_ previewViewController: RPPreviewViewController) {
print("cancel and save button pressed")
previewViewController.dismiss(animated: true, completion: nil)
//dismiss preview view controller when save or cancel button pressed
}
Lütfen, ekranı yayınladınız, oyuncu bitirir, daha sonra diske yayınlanan videoyu kaydetmek ister misiniz? – Lance
Sorun, ekranın yayınını bitirdikten sonra durağa basıyorum ve sonra ekranı kaydetmeyi deneyin ve işe yaramıyor. Yayınlanan videoyu kaydetmek istemiyorum. Sadece ekranı kaydedebilmek istiyorum ve o zaman bittiğinde ekranı yayınlamak istiyorum. Yeni replay kit çerçevesini gördüyseniz bile bilmiyorum ama ekranı kaydedebilir ve ekranı canlı olarak yayınlayabiliriz. Sadece bir uygulamada kullanmasına izin verilip verilmediğini bilmiyorum. – coding22
İkisi de iyi çalışıyorlar, ama eğer bunu arka arkaya yaparsam. Ekranı ilk önce kaydeder gibi çalışır ve ekran canlı yayınlamak istiyorum, işe yaramaz. Aynı şey, ekranın ilk canlı yayınlandığı yerde tersine yaparsam aynı şey olur ama ben ekrana kayıt yapmaya çalıştığımda çalışmayacaktır. Bunun neden olduğundan emin değilim. – coding22