Swift iOS pre fetch video in iOS 16 - ios

I'm looking for a way to load videos before they play in iOS 16. In older versions "loadValuesAsynchronously" works fine with "tracks" key. Apple documentation says this method has been removed and we should use "load(_:)" but this value does not preload videos.
How can I pre-load videos before they play?

Related

How to embed a live stream using the Youtube API on tvOS

I need the ability to embed a Youtube live stream into a tvOS app. Due to the lack of an UIWebView, this was not possible with all previous tvOS. I hoped, that this feature will be included in the current tvOS 10 or Swift 3 release but it seems to me, that it is still missing.
Nevertheless, does anybody know a trick / something that I missed out during my journey through the API documentation? I'm not allowed to use Youtube parsers like pod 'youtube-parser', etc. I have to be in full compliance with the terms and conditions of Youtube.
My solution so far is not good enough but it works fine
First, I find youtube playlist by using youtube-dl app
https://rg3.github.io/youtube-dl/download.html
So, I can find link https://manifest.googlevideo.com/api/manifest/hls_playlist/*****.m3u8 in this format. Then, I just embedded this link to TVOS application.

ios swift store videos

I am doing a video Library app. I want store 6 videos locally in this app. When user download this app, it already had those 6 videos. Also, those videos might be replaced later by other videos if the app has been updated from server. So where should I put those videos? The sandbox document or other place?
The pre-uploaded videos will always be in your bundle, you have no method to replace it. All the other videos will be in your sandbox as it's the only place you can use.
You can have a look at on-demand-resource introduced in iOS9, which may be what you want.
The Documents folder is indeed the best place to store videos or other files that you want to persist between launches of the application.
Because cellular data can be expensive and to reduce initial download size, I recommend allowing the user to download the video files only after installing your app.
The concept I'm talking about can be seen by looking at this related question (code is in Objective-C, tho).

Apple Music Offline Files Have no URL?

It seems that the property MPMediaItemPropertyAssetURL on a MPMediaItem returns null when the file is one that was from Apple Music and has been made "available offline".
On the other hand, items from my original library which I uploaded to iTunes match/apple music and then make available offline don't seem to have this problem.
Is this a bug? Have I done something wrong? Anyone having similar issues?
It seems that Apple Music files are DRM-protected and subscription based, so probably Apple prohibits the use of references to these assets due to rights management.
Reference: https://forums.developer.apple.com/thread/7389
Things have changed a little and this isn't true anymore. MPMediaItemPropertyAssetURL is not nil on iOS 11 for songs saved offline via Apple Music but AVPlayer is unable to play them since they are still DRM protected. The same song returns MPMediaItemPropertyAssetURL nil on iOS 9.
If you are interested in checking for DRM protected songs or in playing such songs, you can read my detailed answer here: https://stackoverflow.com/a/47694472/4331787

MP4 Videos on website embed with html5 does not play on iOS

So I have a couple of videos on my website that I shot using the iPhone 4 and then converted to mp4, webm and ogg, so that I can use them with html5. Thing is, the video does not play at all on the 4 iOS devices that I tested and neither on Chrome for Android.
The Chrome issue could be because some of the mp4 are actually m4v files, but still after encoding with handbrake a video to the iphone 4 presset and in mp4 format, it still does not play.
What happens, you ask? Well, it shows the play button crossed out with a diagonal bar, the debug console on Safari does not show any message untill I try to access the video directly. Then it says: QuickTime Movie could not be played.
What can I do? I have been trying to encode with ffmpeg, have tried a handful of different solutions, some even found here on stackoverlow, but to no avail. The videos do get shorter, both in display size and MBs, but nothing works to fix the issue at hand.
I've been trying to get this corrected for a couple of weeks now. Any help and/or suggestions are welcome.
Thank you.
By the way, all the videos are on a registred users section of the website, but I have one for debugin on the main page, so feel free to test.
https://sidnerwebsite.sytes.net
It seems the issue is caused by the iOS' need of an Intermediate Certificate trusted by the iOS to play videos through an SSL connection. After disabling the re-routing of the website to its ssl counterpart, the videos display correctly on iOS.

youtube api player not working on iOS?

I'm using the YouTube API in my flex app to play videos and it works fine running on my computer and android, but I'm getting an issue when I try to use it on iOS, I just get a black screen!
Any ideas?
I was curious so did some research.
First, I searched for SWFLoader on iOS and this post came up. I'll quote:
You cannot load SWFS that run ActionScript on IOS
Then I realized from your comment you may be using the Loader class; so I googled Flash Loader on iOS and came across this. To quote:
In an iPhone application, you cannot use the Loader.load() method.
However, you cannot run any ActionScript code in SWF content loaded
with the Loader.load() method. However, you can use assets in the SWF
file (such as movie clips, images, fonts, and sounds in the library).
You can also use the Loader.load() method to load image files.
You may benefit from reading through the actual Adobe docs. Specifically this page which focuses on unsupported APIs. It is the last link where the above quote comes from.
It's true you cannot load and run a SWF and in this case the video is a stream so you there is no media to save. Youtube does have an alternative URL that points to an actual mp4 file which will play on iOS. You can use a VideoDisplay player and that URL to play the video.

Resources