用户关闭AVPlayer时如何获得视频播放时间

时间:2018-08-08 05:08:20

标签: swift avkit

在该应用中,用户应观看设置视频。如果他们还没看完,然后单击“关闭”按钮,我想知道他们在哪里停了,所以一旦他们再次开始看,我就可以从那个地方开始播放视频。

我想知道他们停止观看的时间,因此我可以使用以下代码将该号码保存到服务器以供以后使用:

export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath={.items..metadata.name})
kubectl exec -it $SOURCE_POD -c sleep -- curl -s -o /dev/null -D - https://edition.cnn.com/politics
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
x-servedByHost: ::ffff:172.17.128.31
access-control-allow-origin: *
cache-control: max-age=60
content-security-policy: default-src 'self' blob: https://*.cnn.com:* http://*.cnn.com:* *.cnn.io:* *.cnn.net:* *.turner.com:* *.turner.io:* *.ugdturner.com:* courageousstudio.com *.vgtf.net:*; script-src 'unsafe-eval' 'unsafe-inline' 'self' *; style-src 'unsafe-inline' 'self' blob: *; child-src 'self' blob: *; frame-src 'self' *; object-src 'self' *; img-src 'self' data: blob: *; media-src 'self' data: blob: *; font-src 'self' data: *; connect-src 'self' *; frame-ancestors 'self' https://*.cnn.com:* http://*.cnn.com https://*.cnn.io:* http://*.cnn.io:* *.turner.com:* courageousstudio.com;
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
Via: 1.1 varnish
Content-Length: 1554561
Accept-Ranges: bytes
Date: Wed, 08 Aug 2018 04:59:07 GMT
Via: 1.1 varnish
Age: 105
Connection: keep-alive
Set-Cookie: countryCode=US; Domain=.cnn.com; Path=/
Set-Cookie: geoData=mountain view|CA|94043|US|NA; Domain=.cnn.com; Path=/
Set-Cookie: tryThing00=3860; Domain=.cnn.com; Path=/; Expires=Mon Jul 01 2019 00:00:00 GMT
Set-Cookie: tryThing01=4349; Domain=.cnn.com; Path=/; Expires=Fri Mar 01 2019 00:00:00 GMT
Set-Cookie: tryThing02=4896; Domain=.cnn.com; Path=/; Expires=Wed Jan 01 2020 00:00:00 GMT
X-Served-By: cache-iad2150-IAD, cache-sin18022-SIN
X-Cache: HIT, MISS
X-Cache-Hits: 1, 0
X-Timer: S1533704347.303019,VS0,VE299
Vary: Accept-Encoding

我尝试了以下操作:

player.seek(to: CMTimeMakeWithSeconds(637, 1))

第一个通知“ AVPlayerItemDidPlayToEndTime”效果很好(对于一直观看视频的用户),但是我的其他通知“ AVPlayerItemFailedToPayToEndTime”不起作用(对于在视频中途停下来的用户)。

如果我的用户没有看完整个视频,我该如何获得停止点?

编辑#1

这是视频播放时的屏幕外观:

AVKit

1 个答案:

答案 0 :(得分:1)

您正在从视图控制器中显示playerVC。当playerVC关闭时,将调用视图控制器中的viewDidAppear()。这是放置时间检查代码的一种选择。

原始答案

您已经在使用player.currentTime()。为什么不也将其放在关闭按钮处理程序中?像这样

let current = Double(CMTimeGetSeconds(avPlayer.currentTime()))