[
https://issues.apache.org/jira/browse/CB-6051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claudius Coenen updated CB-6051:
--------------------------------
Description:
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.
was:
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.
> 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)