Refactoring
This commit is contained in:
parent
54837bb2f9
commit
fe822d0c85
|
@ -24,10 +24,7 @@ final class ExampleRecorderDelegate: DefaultAVRecorderDelegate {
|
|||
}
|
||||
|
||||
final class LiveViewController: UIViewController {
|
||||
var rtmpConnection = RTMPConnection()
|
||||
var rtmpStream: RTMPStream!
|
||||
var sharedObject: RTMPSharedObject!
|
||||
var currentEffect: VideoEffect?
|
||||
private static let maxRetryCount: Int = 5
|
||||
|
||||
@IBOutlet private weak var lfView: GLHKView?
|
||||
@IBOutlet private weak var currentFPSLabel: UILabel?
|
||||
|
@ -41,7 +38,12 @@ final class LiveViewController: UIViewController {
|
|||
@IBOutlet private weak var fpsControl: UISegmentedControl?
|
||||
@IBOutlet private weak var effectSegmentControl: UISegmentedControl?
|
||||
|
||||
var currentPosition: AVCaptureDevice.Position = .back
|
||||
private var rtmpConnection = RTMPConnection()
|
||||
private var rtmpStream: RTMPStream!
|
||||
private var sharedObject: RTMPSharedObject!
|
||||
private var currentEffect: VideoEffect?
|
||||
private var currentPosition: AVCaptureDevice.Position = .back
|
||||
private var retryCount: Int = 0
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
@ -139,16 +141,24 @@ final class LiveViewController: UIViewController {
|
|||
}
|
||||
|
||||
@objc
|
||||
func rtmpStatusHandler(_ notification: Notification) {
|
||||
private func rtmpStatusHandler(_ notification: Notification) {
|
||||
let e = Event.from(notification)
|
||||
if let data: ASObject = e.data as? ASObject, let code: String = data["code"] as? String {
|
||||
switch code {
|
||||
case RTMPConnection.Code.connectSuccess.rawValue:
|
||||
rtmpStream!.publish(Preference.defaultInstance.streamName!)
|
||||
// sharedObject!.connect(rtmpConnection)
|
||||
default:
|
||||
break
|
||||
guard let data: ASObject = e.data as? ASObject, let code: String = data["code"] as? String else {
|
||||
return
|
||||
}
|
||||
switch code {
|
||||
case RTMPConnection.Code.connectSuccess.rawValue:
|
||||
retryCount = 0
|
||||
rtmpStream!.publish(Preference.defaultInstance.streamName!)
|
||||
// sharedObject!.connect(rtmpConnection)
|
||||
case RTMPConnection.Code.connectFailed.rawValue, RTMPConnection.Code.connectClosed.rawValue:
|
||||
guard retryCount <= LiveViewController.maxRetryCount else {
|
||||
return
|
||||
}
|
||||
rtmpConnection.connect(Preference.defaultInstance.uri!)
|
||||
retryCount += 1
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ open class NetSocket: NSObject {
|
|||
var outputStream: OutputStream?
|
||||
var inputQueue = DispatchQueue(label: "com.haishinkit.HaishinKit.NetSocket.input")
|
||||
|
||||
private var buffer: UnsafeMutablePointer<UInt8>?
|
||||
private var buffer = [UInt8](repeating: 0, count: 0)
|
||||
private var runloop: RunLoop?
|
||||
private let outputQueue = DispatchQueue(label: "com.haishinkit.HaishinKit.NetSocket.output")
|
||||
private var timeoutHandler: (() -> Void)?
|
||||
|
@ -53,6 +53,13 @@ open class NetSocket: NSObject {
|
|||
return data.count
|
||||
}
|
||||
|
||||
open func close() {
|
||||
close(isDisconnected: false)
|
||||
}
|
||||
|
||||
open func listen() {
|
||||
}
|
||||
|
||||
final func doOutputFromURL(_ url: URL, length: Int) {
|
||||
outputQueue.async {
|
||||
do {
|
||||
|
@ -109,16 +116,8 @@ open class NetSocket: NSObject {
|
|||
}
|
||||
}
|
||||
|
||||
open func close() {
|
||||
close(isDisconnected: false)
|
||||
}
|
||||
|
||||
open func listen() {
|
||||
}
|
||||
|
||||
func initConnection() {
|
||||
buffer = UnsafeMutablePointer<UInt8>.allocate(capacity: windowSizeC)
|
||||
buffer?.initialize(repeating: 0, count: windowSizeC)
|
||||
buffer = [UInt8](repeating: 0, count: windowSizeC)
|
||||
|
||||
totalBytesIn = 0
|
||||
totalBytesOut = 0
|
||||
|
@ -165,19 +164,17 @@ open class NetSocket: NSObject {
|
|||
outputStream?.remove(from: runloop!, forMode: .default)
|
||||
outputStream?.delegate = nil
|
||||
outputStream = nil
|
||||
buffer?.deinitialize(count: windowSizeC)
|
||||
buffer?.deallocate()
|
||||
buffer = nil
|
||||
buffer.removeAll()
|
||||
}
|
||||
|
||||
func didTimeout() {
|
||||
}
|
||||
|
||||
private func doInput() {
|
||||
guard let inputStream: InputStream = inputStream, let buffer: UnsafeMutablePointer<UInt8> = buffer else {
|
||||
guard let inputStream: InputStream = inputStream else {
|
||||
return
|
||||
}
|
||||
let length: Int = inputStream.read(buffer, maxLength: windowSizeC)
|
||||
let length: Int = inputStream.read(&buffer, maxLength: windowSizeC)
|
||||
if 0 < length {
|
||||
totalBytesIn += Int64(length)
|
||||
inputBuffer.append(buffer, count: length)
|
||||
|
|
Loading…
Reference in New Issue