2012-11-30 4 views
4

Disons que je stocke un fichier audio dans la base de données et plus tard je voudrais utiliser ce BLOB ou binaire dans mon application.HTML5 en utilisant src en utilisant des données binaires brutes

<audio src ="${sessionScope.user.music}"> 

${sessionScope.user.music} retourne une donnée binaire qui a été récupérer à partir de la base de données.

serait-il possible de charger un fichier audio dans une balise audio, en utilisant des données binaires au lieu d'un uri? ou chemin?

+1

Disons que. Mais quelle est ta question? –

+0

@BrianAgnew regarde j'ai oublié de placer la dernière déclaration, je l'ai mis à jour. – KyelJmD

+1

Pourquoi ne pouvez-vous pas simplement utiliser url comme 'src ="/user/music "' et que cette URL réponde avec le fichier audio? – Esailija

Répondre

8

Un peu comme des images en ligne:

<img src="data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/ 
f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67 
QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g7 
7ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7" 
    width="16" height="14" alt="embedded folder icon"> 

Si cela fonctionne pour <img>, je suis loin d'être sûr que data:audio/mp3;base64, ... (ou audio/ogg) fonctionnerait. Ce n'est pas dans ma référence HTML5.

Pour le codage, voir JEditorPane with inline Image.

+1

il fonctionne également pour l'audio (juste testé avec audio/ogg) –

+0

@HarloHolmes, j'aime ça. Firefox et IE? –

+0

firefox à coup sûr. Je n'ai pas encore testé IE ... –

0

vous devez convertir vos données binaires à chaîne en utilisant javascript .. Voir la Post

+0

Pourquoi aurais-je besoin de convertir ces données binaires brutes en chaîne? – KyelJmD

+1

beacause HTML ne sait pas binaire ... vous devez le fournir dans une chaîne –

+0

donc à travers cette chaîne, il serait lu comme un audiofile? – KyelJmD

1

J'avais besoin d'intégrer de grandes quantités (quelques Mo) de données binaires pour un affichage 3D à trois dimensions.

C'est ce que je suis venu avec:

  1. écrire les 8bit données binaires dans un fichier .png
  2. base64 encodent le fichier .png comprimé résultant RLL
  3. utilisation <img src="data:image/png;base64,...."> d'inclure cela dans le fichier html5
  4. créer un canevas masqué de dimension appropriée et utiliser context.drawImage et context.getImageData pour extraire les données binaires qui sont finalement stockées dans un tableau Uint8ClampedArray
  5. calculer le pour threejs de cette Uint8ClampedArray

Float32Array nécessaire (s) Je ne sais pas si cela fonctionne pour fournir des données de musique binaires aussi, mais la question n'a pas été mentionnais les données de la musique et il pourrait être utile pour les autres qui s'est échoué ici comme moi à la recherche de solutions générales pour inclure des données binaires en HTML5 :-)

Questions connexes