1
をdissmissedされなければならないときに、ユーザーがavplayercontrollerを閉じたときに、ここではそれは、私はビデオ位置の時間を送信する必要がある関数を、持って、バックグラウンドでalamofire要求を送信します。ビューコントローラは、
let concurrentQueue = DispatchQueue(label: "networkRequest", attributes: .concurrent)
fileprivate func sendBackgroundRequest(urlString: String, method: HTTPMethod, parameters: Parameters?) {
let headers = createHeader()
print(headers)
if networkManager!.isReachable {
concurrentQueue.async {
let request = Alamofire.request(urlString, method: method, parameters: parameters, encoding: JSONEncoding.default, headers: headers)
request.responseJSON { data in
if data.result.error == nil {
if data.response?.statusCode == 200 {
print("Success")
} else {
print(data.response?.statusCode)
}
} else {
print(data.result.error)
}
}
}
}
}
func sendSeriesDurationTime(provider: String, fileID: String, timePosition: Int) {
let parameters: Parameters = [
"time_position": timePosition
]
let dataUrl = "\(BASE_URL)\(PLAYED_DURATION_SLUG)\(provider)/\(fileID)"
print(dataUrl)
sendBackgroundRequest(urlString: dataUrl, method: .post, parameters: parameters)
}
私はviewWillDisappearでそれを呼び出します方法。しかし、プレイヤーの「完了」ボタンをクリックすると、アラモファイアが完了するまでにシステムが待機するので、消えるまでに時間がかかります。
私はviewDidDisappear方法が、私のUIは、別のコントローラにフリーズするこの方法でそれを呼び出すことができることを、知っている....