didFinishReceivingResourceWithName方法没有被调用

4

我正在制作一个应用程序,通过MC发送视频,didStartReceivingResourceWithName被正确调用。与该回调相关联的NSProgress对象达到101.0%,然后didFinishReceivingResourceWithName从未被调用。你有什么想法吗?以下是每个代码:

func session(session: MCSession, didStartReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, withProgress progress: NSProgress) {
    print("Did start receiving resource")
    dispatch_async(dispatch_get_main_queue()){
        self.progressTimer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "progressManager", userInfo: nil, repeats: true)
        self.progress = progress
    }
}
func session(session: MCSession, didFinishReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, atURL localURL: NSURL, withError error: NSError?) {
    dispatch_async(dispatch_get_main_queue()){
        self.status.text = "Recieved!"
    }
    self.progressTimer.invalidate()
    let destinationPath  =
    NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent("movie.mov")
    let fileManager: NSFileManager = NSFileManager.defaultManager()
    do{
        try fileManager.moveItemAtURL(localURL, toURL: destinationPath)
    }
    catch let error as NSError {
        print(error)
    }
    print("Did finish receiving resource")
}

2
你解决过这个问题吗?我也遇到了didFinishReceivingResourceWithName未被调用的情况。 - BarrettJ
有人发现了什么有用的东西可以分享吗? - Siempay
1个回答

1
我在调用使用AVAssetWriter创建的本地视频文件的sendResource时遇到了问题。结果发现,我在AVAssetWriter完成写入视频前就对视频文件调用了sendResource。修改后,我在.finishWriting的完成处理程序中调用sendResource,一切都按预期工作了。

你能提供几行代码来说明解决方案吗?谢谢。 - benc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接