Posts

Post not yet marked as solved
2 Replies
Just an update: tested sharing from macOS 13 to iOS 16.1 and 15.7 with the same (no) results.
Post not yet marked as solved
2 Replies
Ticket created: FB11102037
Post not yet marked as solved
1 Replies
To answer my own question: I found that the default NSTableView style has changed in macOS 11 and in order to get the same behaviour as previous macOS versions I need to add the following in windowDidLoad: if (@available(macOS 11, *)) { theTableView.style = NSTableViewStylePlain; } Sorry for the noise.
Post marked as solved
6 Replies
After communication from Apple about the reported issue, the issue is resolved. The solution for anyone having the same problem: You just need to install an AVFragmentMinder after the asset hasFragments and duration properties are loaded. After that, you can create an AVPlayerItem with the fragmented asset and it will respect the growing duration as times goes by. Our using the AVAssetDurationDidChangeNotification callback to update the playerItem was superfluous.
Post marked as solved
6 Replies
I removed all interdependencies between the AVPlayerView and other parts of our app and I tried again to play the asset without updating the AVPlayerItem. I have tried opening the asset both as an AVURLAsset and an AVFragmentedAsset. Same result, the asset plays up to the duration it knew when it was first loaded (when the call to loadValuesAsynchronouslyForKeys: completed). Anyone has any other ideas?
Post marked as solved
6 Replies
Should that work automagically? In our app there are a lot of dependencies between the AVPlayer and our custom controller through a periodicTimeObserver callback block. I commented them out and tried your suggestion, but the playback stops at the initial asset duration.
Post marked as solved
3 Replies
After a second reading of your reply, I moved the AVFragmentMinder creation after the asset duration is loaded. Now the AVAssetDurationDidChangeNotification is properly logged in my problem. Thank you.
Post marked as solved
3 Replies
I am doing this. After creating the fragmentedAsset I call: (void) loadTheAsset: (AVAsset *) anAsset { NSArray *assetKeysToLoadAndTest = @[ @"playable", @"hasProtectedContent", @"tracks", @"duration", @"canContainFragments", @"containsFragments" ]; [anAsset loadValuesAsynchronouslyForKeys: assetKeysToLoadAndTest completionHandler: ^(void) { dispatch_async(dispatch_get_main_queue(), ^(void) { NSLog(@"           playable: %@", (anAsset.playable ? @"YES" : @"NO")); NSLog(@"           duration: %.2lf", CMTimeGetSeconds(anAsset.duration)); NSLog(@"canContainFragments: %@", (anAsset.canContainFragments ? @"YES" : @"NO")); NSLog(@"  containsFragments: %@", (anAsset.containsFragments ? @"YES" : @"NO")); }); }]; } All properties have their expected values.
Post not yet marked as solved
1 Replies
I tried the just released macOS 10.15.3 and the problem is still here. Does anybody have any ideas?Christos Konidaris