diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2023-04-14 11:55:06 +0200 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2023-04-14 15:21:28 +0200 |
commit | ff7de11d2af36c63f02599d65533b7aefd8eeb41 (patch) | |
tree | 99adce2694f3c0e8f32b8a5e860487b1e6a8fa4f | |
parent | baf7cdc0a14cdb73dfc73a6dd6c0ac6d91cce213 (diff) | |
download | qtmultimedia-ff7de11d2af36c63f02599d65533b7aefd8eeb41.tar.gz |
AVFMediaPlayer: fix permission issue
When loading asset's tracks.
Fixes: QTBUG-112847
Change-Id: Id497d70f73981a9750f92ae6d666dc2aa3db82cd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Doris Verria <doris.verria@qt.io>
-rw-r--r-- | src/plugins/multimedia/darwin/mediaplayer/avfmediaplayer.mm | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/multimedia/darwin/mediaplayer/avfmediaplayer.mm b/src/plugins/multimedia/darwin/mediaplayer/avfmediaplayer.mm index 362aef708..e98659bec 100644 --- a/src/plugins/multimedia/darwin/mediaplayer/avfmediaplayer.mm +++ b/src/plugins/multimedia/darwin/mediaplayer/avfmediaplayer.mm @@ -107,6 +107,9 @@ static void *AVFMediaPlayerObserverCurrentItemDurationObservationContext = &AVFM // use __block to avoid maintaining strong references on variables captured by the // following block callback +#if defined(Q_OS_IOS) + BOOL isAccessing = [m_URL startAccessingSecurityScopedResource]; +#endif __block AVURLAsset *asset = [[AVURLAsset URLAssetWithURL:m_URL options:nil] retain]; [asset.resourceLoader setDelegate:self queue:dispatch_get_main_queue()]; @@ -119,6 +122,10 @@ static void *AVFMediaPlayerObserverCurrentItemDurationObservationContext = &AVFM ^{ dispatch_async( dispatch_get_main_queue(), ^{ +#if defined(Q_OS_IOS) + if (isAccessing) + [m_URL stopAccessingSecurityScopedResource]; +#endif [blockSelf prepareToPlayAsset:asset withKeys:requestedKeys]; [asset release]; [requestedKeys release]; |