Bug 155778 - Embedded audio does not work in SVG+SMIL animation
Summary: Embedded audio does not work in SVG+SMIL animation
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P1 Blocker
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-22 17:01 PDT by Emanuele Sabetta
Modified: 2016-04-13 09:17 PDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Emanuele Sabetta 2016-03-22 17:01:10 PDT
Embedded audio does not work in SVG+SMIL animation.
If you read this article:

https://medium.com/@fmuaddib/the-following-are-the-possible-ways-to-create-professional-animations-in-svg-9d4caca5f4ec

you will find an SVG cartoon animation (the firt one). 
If you start it, the audio is not reproduced. 
This happens only on Safari, both on OSX and iOS versions. 
On Chrome browser it works fine and the audio is reproduced correctly.

To reproduce: 
1) Open this SVG animation (direct link): http://www.tbyrne.org/portfolio/smil/LoveDota.svg

Expected behavior:
- The animation should have audio reproduced

What happens instead:
- The animation have no audio
Comment 1 Said Abou-Hallawa 2016-04-12 15:46:39 PDT
A workaround is to move the audio data in a separate binary file instead of having it as data uri saved inside the SVG file.
Comment 2 Emanuele Sabetta 2016-04-12 15:51:49 PDT
(In reply to comment #1)
> A workaround is to move the audio data in a separate binary file instead of
> having it as data uri saved inside the SVG file.

No, audio should be embedded in the svg file to allow the user to download the videoclip and watch it offline.
Comment 3 Said Abou-Hallawa 2016-04-12 16:34:23 PDT
(In reply to comment #2)
> (In reply to comment #1)
> > A workaround is to move the audio data in a separate binary file instead of
> > having it as data uri saved inside the SVG file.
> 
> No, audio should be embedded in the svg file to allow the user to download
> the videoclip and watch it offline.

Yes that is right. Sub-resources will not be allowed to load from a non interactive SVG. So currently there is no workaround.
Comment 4 Jer Noble 2016-04-13 09:17:33 PDT
AVFoundation will silently fail to load data: URLs, without triggering our AVAssetResourceLoaderDelegate. We could hack around this by rewriting "data:" to "webkit-data:", handling the request in the delegate, and re-rewriting "webkit-data:" back to "data:" before passing it off to the WebCore loader.