2010-12-15 77 views
3

J'ai trouvé ce lien sur une page ici sur StackOverflow à propos de "Creating Audio using Javascript in <audio>", et cette page sur how to play audio on multiple channels. J'ai trouvé que l'iPhone prend en charge la balise audio et l'objet Audio en Javascript pour lire l'audio monocanal, mais existe-t-il un moyen de lire l'audio sur plusieurs canaux? Peut-être que je suis trop compliquer cela, alors c'est ce que je suis en train de faire. Je veux un moyen de faire un lecteur audio gracieux en Javascript qui prend en charge la transition d'un fichier audio à l'autre. La façon dont j'allais mettre en œuvre ceci est de réduire progressivement le volume sur un canal tout en augmentant progressivement le volume sur l'autre canal afin que j'obtienne une sorte d'effet de fondu. Existe-t-il une solution plus simple en utilisant uniquement Javascript? Je suppose qu'une autre solution serait de réduire le volume à un certain point, de lancer le nouveau fichier audio sur le même canal, puis d'augmenter à nouveau le volume. Cela évite le besoin de décoloration, mais je voudrais fondre si possible.Support audio multi-canal dans le navigateur sur iOS et Android

Est-ce possible? Je sais que la spécification HTML5 n'est pas encore terminée, mais y a-t-il une sorte de solution de contournement que vous connaissez? Est-ce que l'un de vous a des idées pour une autre approche? D'après ce que je peux dire de cet article à propos de playing audio in the Android browser, ce n'est pas encore supporté, mais est-ce que l'un d'entre vous sait s'il supporte l'audio à plusieurs canaux une fois que la balise audio est supportée? Est-ce que l'opéra mini soutient cela?

+0

Cela fait quelques jours et personne n'a commenté. La page que j'ai référencée lit l'audio multicanal sur la plupart des navigateurs compatibles HTML5 (Opera, Firefox 3.6, Firefox 4 [sorte de, un peu buggé], Safari et Chrome). Cela ne fonctionne pas dans IE9 (ou du moins la version que j'ai), mais cela ne me surprend pas. – tjameson

+0

Mon ami m'a dit que dans la prochaine version d'Android, cela devrait être corrigé. J'ai regardé autour, et selon quelques forums, le type de balise Audio fonctionne dans la nouvelle version d'Android (pain d'épices). Est-ce que quelqu'un sait s'il prend en charge l'audio multi-canaux? – tjameson

+0

Android 2.4 sort ce mois-ci.Je vais vérifier pour voir si cela fonctionne quand il sortira. – tjameson

Répondre

3

Ceci est une vieille question que je connais :).

iOS Safari ne prend pas en charge plusieurs objets audio en même temps. En outre, il n'est pas possible d'avoir un effet de fondu entrant/sortant pour iOS, car le seul moyen de modifier le réglage du volume provient du matériel lui-même. Apple a décidé de donner cette capacité uniquement à l'utilisateur de l'appareil. Le réglage du volume n'est pas accessible en écriture par javascript. Il n'est même pas lisible (renvoie toujours 1).

Vous pouvez consulter le Safari documentation for iOS pour plus d'informations. Pour Android, pour être honnête, je n'ai aucune idée.

+0

+1 Informations utiles! Est-ce que cela signifie qu'il n'y a qu'un volume global? (non par volume d'application) – tjameson

+0

Si vous développez une application Web, oui, il n'y a qu'un seul volume global et un seul canal audio. Pour les applications natives basées sur Objective-C, il n'est pas si différent que n'importe quel autre système d'exploitation. AVAudioPlayer peut être utilisé pour plusieurs canaux et possède également un paramètre de volume. Pourtant, cela dépend encore de l'audio global. Si l'utilisateur baisse ou coupe le son, il n'y a rien que vous puissiez faire pour le changer. – emrahgunduz

0

Je ne connais aucun moyen direct d'avoir plusieurs canaux sur une balise audio, mais jetez un coup d'œil à ce billet sur l'utilisation de plusieurs balises audio pour simuler plusieurs canaux. http://www.storiesinflight.com/html5/audio.html

+0

C'est en fait le même lien que j'ai posté, mais je suppose que cela pourrait signifier que ce sont les seules données précieuses là-bas ... – tjameson

0

Je sais que c'est un hack total, mais essayer cette astuce je suis venu avec ...

Aller à la page ci-dessous et tapez sur les touches de ligne de la maison pour jouer un riff de blues (tapez plusieurs touches en même temps, etc.)

http://davealger.com/jthump/

la façon dont cela fonctionne est de créer invisibles composants qui jouent un son avant de détruire le cadre. Je sais que c'est un hack total et j'attends avec impatience un meilleur support audio multi-canal HTML 5 dans le futur.