Marc Becker
Marc Becker

Reputation: 553

Cordova play local audio file

My cordova app downloads an audio file from the web. This works fine and the track is being saved in

"cdvfile://localhost/persistent/JukeboxDownloads/Test.mp3"

I get the URL of the file like that inside the success call of my downloader:

entry.toURL();

I then try to play the downloaded file using an audio tag (iOS) like this:

<audio src="file:///Users/Marc/Library/Developer/CoreSimulator/Devices/59AA8A4B-5CE5-42E2-8CF8-7DA0DEB07E99/data/Containers/Data/Application/7406C75B-4509-44C5-A6C7-F71C2D6D27AF/Documents/JukeboxDownloads/Test.mp3" id="audioPlayer" controls>

I also tried to set the src manually using jQuery:

$("#audioPlayer").attr("src","file:///Users/Marc/Library/Developer/CoreSimulator/Devices/59AA8A4B-5CE5-42E2-8CF8-7DA0DEB07E99/data/Containers/Data/Application/7406C75B-4509-44C5-A6C7-F71C2D6D27AF/Documents/JukeboxDownloads/Test.mp3");

However, both did not work for me and I am not able to play the audio, it always says "Error" without further explanation. When I use another source file it works perfectly (that means a file inside my www folder or on the web).

Any ideas why cordova does not play the file?

I would appreciate your help!

Further information: Cordova 5.0;xCode 6.3.1;iOS 8.3

Upvotes: 0

Views: 801

Answers (1)

Playforward
Playforward

Reputation: 560

Try referencing the file by creating the src like so:

var src = cordova.file.documentsDirectory + 'JukeboxDownloads/Test.mp3';

I have found that when building the app and rebuilding the referenced GUID for the app changes which causes the URL to be invalid.

In my experience, using cdvfile://localhost/persistent/ works for images but not video or audio files.

Upvotes: 1

Related Questions