1

Essentially I'm moving a static HTML site into Craft. I've created a new plugin for the site and have gotten a good chunk of it working however I'm having an issue where audio files won't play.

The site is supposed to have music auto-playing and looping (it's a site for kids before you start judging me), and it works correctly on the static site, however nothing plays in my Craft instance and when I go to the direct URL for the audio file it won't play in browser either but doesn't give me a 404. If I "Save As" it does then download correctly.

Code is very simple:

<audio autoplay loop>
        <source src="{{ resourceUrl('somesite/audio/some_theme_full.ogg') }}" type="audio/ogg">
        <source src="{{ resourceUrl('somesite/audio/some_theme_full.mp3') }}" type="audio/mpeg">
</audio>

The src generates correctly as e.g http://site.local/cpresources/somesite/audio/some_theme_full.mp3?d=1513706441.

Any help would be wonderful!

1

I think the cleanest way to solve your issue is to create a new Asset for each of your audio files and relate it to your entries.

<audio autoplay loop>
    {% set audioFiles = entry.assetFieldHandle.all() %}
    {% for asset in audioFiles %}
        <source src="{{ asset.getUrl() }}" type="{{ asset.getMimeType() }}">
    {% endif %}
</audio>
3
  • Thanks for the answer, however I don't want the assets to have to be uploaded and need them contained to the plugin. It also doesn't really solve my issue of why the audio files won't play.
    – Owen Davey
    May 1 '18 at 13:39
  • Are you using Craft 3 or Craft 2? May 1 '18 at 13:40
  • Sorry, I should have mentioned that I'm using Craft 2. I'm stuck using this version due to my client.
    – Owen Davey
    May 1 '18 at 13:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.