Claudius Coenen created CB-6051:
-----------------------------------
Summary: video / audio won't play from cdvfile:// urls
Key: CB-6051
URL: https://issues.apache.org/jira/browse/CB-6051
Project: Apache Cordova
Issue Type: Bug
Components: Plugin File
Affects Versions: 3.3.0
Environment: iOS
Reporter: Claudius Coenen
We have an application that used to work in Cordova 2.9, we think we have
traced down the error to cdvfile://. Here's what's happening:
*The Application*
We're loading a few videos and a HTML-File referencing those videos into the
app, using `FileTransfer`. This transfer is fine now, and we _can_ access and
display the HTML-File and other assets like images. The videos on this page
however won't play. They display as "broken" (strike-through play symbol on
iOS). We know the videos to run, it's not the video's encoding, we also
triple-checked all the filenames as well. If we pre-package the video into the
app, the same setup _does_ play just fine.
*Behaviour Cordova 2.9*
We're getting the just-downloaded html file from the filesystem and call
`toURL()` on that entry. In 2.9 this will return a lengthy (but working)
`file:///`-url. We're basically setting
`window.location = entry.toURL(); // returns file:///...`
*Behaviour Cordova 3.3*
When calling `toURL`, we're now getting a `cdvfile://` URL, and (since the
video file is referenced relatively) the video is also loaded from a
`cdvfile://` URL.
*Why i believe the cdvfile:// to be at fault*
Basically "it used to work". We're suspecting that the file-protocol emulates a
lot of the iOS-y stuff when it comes to video. Possibly the Content-Type-Header
and the Range-Header that iOS uses extensively for streaming the video from a
webserver.
For an audio file, we're getting log-lines reading "_itemFailedToPlayToEnd:
{kind = 1; new = 2; old = 0;}"
I did not find any way to get a `file:///`-URL out of cordova 3.3, but i am
pretty sure that this would cure my immediate problem.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)