I had similar issue with mp4 file stored on device which got fixed by prepending “file://” to the file path
guard let strPath = Bundle.main.path(forResource: "demo", ofType: "mp4"), let url = URL(string: "file://\(strPath)") else {
print("Umm, looks like an invalid URL!")
return
}
Inspired by this post