HTML-file met ingekapselde audio-file

Status
Niet open voor verdere reacties.

rubens34

Gebruiker
Lid geworden
23 apr 2013
Berichten
10
Ik wil een HTML-file maken die behalve tekst ook een audio-file bevat.
bijvoorbeeld via
<embed src="moodindigo.wav"autoplay=true hidden=true loop=true>
</embed>

Nu gaat de browser normaal opzoek naar moodondigo.wav die dan buiten deze HTML-file staat.
Ik wil echter de audio-file zelf in de HTML-file hebben. Dus zal die via een encoding process(base 64?) omgezet
moeten worden zodat die in de HTML-file kan worden opgenomen.
En de HTML-file dus onafhankelijk is van een externe audio file.

Hoe krijg ik dit voor elkaar?
 
Bedoel je zoiets?

HTML:
<OBJECT CLASSID="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" WIDTH="136" HEIGHT="16" CODEBASE="http://www.apple.com/qtactivex/qtplugin.cab" TYPE="audio/wav">
<PARAM NAME="src" VALUE="test.wav">
<PARAM NAME="autoplay" VALUE="false">
<PARAM NAME="volume" VALUE="25">
<EMBED SRC="test.wav" WIDTH="144" HEIGHT="60" TYPE="audio/wav" PLUGINSPAGE="http://www.apple.com/quicktime/download/" AUTOSTART="false" AUTOPLAY="false" VOLUME="25"></EMBED>
</OBJECT>
 
Ben helaas niet zo vertrouwd met HTML dat ik nu weet wat de html-code die je in het voorbeeld geeft gaat doen.
Kun je een "werkend" voorbeeld geven? Of uitgebreider het voorbeeld bespreken?
Ik begrijp nl niet waar en hoe de "test.wav" dan in de html-file staat..de test.wav is een binaire file en dat kan toch niet
in html code?
 
Hoi rubens34,
Mmm, op deze of soortgelijke manier (met een eigen player i.p.v. een plugin) wordt de .wav aangehaakt, en inderdaad niet als base64-code opgenomen in de html-code zelf.
Maar waarom zou het nodig zijn om die base64 in te voegen (als het al kan *), als je gewoon de wav kunt aanhaken als los bestand?

Met vriendelijke groet,
CSShunter
___________
*) Paar pogingen ondernomen, maar jammerlijk mislukt (zegt ook niet alles ;)).
 
Hanna bedankt voor de handleiding maar voor mijn "toepassing" is deze oplossing niet geschikt.
Ik wil n.l. die html-file als email kunnen verzenden vandaar dat de audio-file "in de html-file " moet....

dus csshunter dat is de reden.

is deze opzet uitvoerbaar?
 
Ik denk niet dat dat gaat werken. Outlook e.d. ondersteunen geen media plugins (laat staan HTML5). Het kan zijn dat er uitzonderingen zijn maar je kunt er in elk geval niet op rekenen dat je ontvangers het bestand in de mail kunnen afspelen
 
Laatst bewerkt:
In Windows live mail gaat het wel en Thunderbirds ook.

Met mhtml gaat het misschien wel in outlook.
 
Laatst bewerkt:
hallo Hanna

Heb nog even geduld met mij, als het in Windows Live Mail zou kunnen, hoe dan?
Want de methode uit de handleidinghtml voorziet niet het "inkapselen" van de audio file in de html-file die ik als email wil verzenden.
Maar misschien is deze opzet niet uitvoerbaar...?
 
Hoi rubens34,
Volgens mij kan de hanna/handleidinghtml-methode inderdaad niet werken, want deze maakt gebruik van een extern .wav bestand.
Dat valt niet zomaar om te zetten in een brok interne base64-code.
Er zijn twee eigenlijk onmogelijk te nemen hobbels:

  1. Een .wav-bestand als afspeelbare base64-code opnemen in een normale html-pagina.
  2. Zo'n speciale html-pagina gebruiken als voer voor een html-code in een e-mail.

Ad 2: html in e-mail ...
Om met de laatste te beginnen:
  • Zoals Naarling al zei, is de ondersteuning van html in losse e-mail programma's als Outlook en Thunderbird gebrekkig. E-mail programma's zijn geen browsers! Voor zover ik weet zijn er ook geen standaarden voor wat een e-mail programma wel of niet met html moet kunnen doen; er zijn in elk geval verschillen. De ondersteuning van "specialiteiten" als ingebedde elementen of audio's vormt daarbij een extra handicap.
  • Mogelijk hangt de al of niet audio-ondersteuning in mails ook af van het Operating System.
  • Gebruikers van e-mail programma's kunnen in hun instellingen een html-weergave (met alles wat daar aan vast zit) uitzetten, zodat er alleen een pure tekst-weergave komt. Een aantal mensen doen dat bv. om veiligheidsredenen: dan kan er via de mail er ook geen ongewenste troep in werking gezet worden. Maar ook geen audio!
  • Audio-bestanden en zeker wav's zijn erg groot. Als het audio-bestand opgenomen zou kunnen worden in de html van het mail-bericht, wordt het mailtje dus ook erg groot! Mogelijke gevolgen: erg lange downloadtijd voor het mailtje (wellicht vastlopen van het mailprogramma), waarschijnlijk erg lang wachten als het mailtje geopend wordt (of alsnog crashen), en verstopping van de INbox.
  • Als de mail-bekijker niet toevallig zijn speaker-boxjes aan heeft staan (ik heb ze bv. standaard altijd uit staan) ... valt er weinig van de ge-embedde wav te horen. :rolleyes:
Conclusie Ad 2: geen enkele garantie dat het werkt.
Eigenlijk hoeft punt 1 dan al niet meer aan de orde te komen!

Tussendoor: de werking van base64
@hanna e.a.:
In principe kan je externe bestanden opnemen ("inkapselen") in een html-pagina zelf, door de gegevens van het externe bestand als "data" voor de vindplaats in de html-code op te nemen. Op zo'n manier kan je bijvoorbeeld een afbeelding inbouwen, die dan niet als afzonderlijk img-bestand hoeft te worden opgevraagd en gedownload.
Nu bestaat de broncode van de externe afbeelding uit binaire data, die geen html-code zijn. Om de inhoud op te nemen in de html van de pagina, moet deze eerst geconverteerd worden tot base64-code. De browser zet het dan weer om in een plaatje.

  • Voorbeeld: base64-image.htm
  • Het "image" is hier geen meegezonden gif, png of jpg. De oorspronkelijke gif is omgezet in base64-code, en staat direct in de html (zie broncode).

Ad 1. Een audio-bestand als base64 invoegen in html ...
Een base64-afbeelding kan kan bij binnenkomst van de pagina meteen gerenderd worden om op scherm te verschijnen.
Bij een audio-bestand ligt dit echter heel anders. Op het moment dat een base64-audiobestand ergens in de html is gedownload, kan dat niet meteen afgespeeld worden. Eerst moet de rest van de html-code binnen zijn. Dat schept een probleem: de audio-gegevens moeten ergens gebufferd worden. Bij een extern audio-bestand is het geen probleem, dat wordt apart gedownload en is in de map "Tijdelijke Internet bestanden" altijd beschikbaar als de browser of de player het nodig heeft (ook: om er porties van te kunnen gebruiken).
Voor het bufferen van een base64-audiobestand moet dus een list uitgevonden worden!
En dat gaat niet (zo maar) ... :confused:

Vandaar dat een Google naar google.nl/search?q=demo+base64+embedded+audio heel erg weinig resultaten geeft!

=======
Als een min of meer werkend verhaal kwam ik deze tegen:
In het hulpbestand zit de truc om de audio te decoderen en te lokaal bufferen.
Maar ...
  • ... Alleen in Chrome hoor ik geluid op mijn desktop, niet in Firefox, Opera, Safari en IE7 (IE8 en IE9 niet getest).
  • ... De base64 en het hulpbestand zijn aparte javascripts > die zouden nog in de html-code zelf gestopt moeten worden.
  • ... Het is html5, wat niet door IE8 heen zal komen (misschien met modernizer erbij, maar dat is weer extra javascript; als het al op audio werkt).
=======
Uit Stackoverflow (stackoverflow.com/questions/2270151/is-it-possible-to-use-data-uris-in-video-and-audio-tags) haalde ik deze html5-oplossing:
Maar ...
=======
Conclusie Ad 1:
Ik heb niet alle Google-resultaten gelezen / getest, maar het lijkt me meer dan aannemelijk (= vrijwel zeker) dat er momenteel geen waterdichte crossbrowser methode is.

=======
Superconclusie
Als ik de conclusies 1 en 2 bij elkaar neem, zit er niets anders op: helaas-pindakaas, het gaat niet!

Maar een beetje nightly experimenteren is altijd leuk! ;)

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Vroeger in outlook expressie werkte het prima met externe bestanden. Maar ja, tijden veranderen. Ik heb dat al heel lang niet meer gedaan en heb er nu de tijd niet voor om het uit te vogelen.
Fijn dat jij het hebt uitgevogeld, cssH.
 
Helaas blijkt mijn idee dus (nog) niet uitvoerbaar met de huidige software...
Maar het is een leerzame correspondentie geweest, dank voor jullie bijdrage
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan