8 votes

Comment faire jouer un son dans une page web asp.net ?

Je veux faire jouer des sons dans ma page Web lorsque je clique sur un bouton. Voici mon code mais il affiche une erreur.

SoundPlayer x = new SoundPlayer();
x.SoundLocation = "WindowsBalloon.wav";
//x.Play();
x.PlaySync();

erreur :

Veuillez vous assurer qu'un fichier son existe à l'emplacement spécifié.

mais le fichier existe dans mon projet et je suis sûr que l'adresse est correcte.

12voto

Harsh Baid Points 3949

Vous ne pouvez pas lire un fichier sur une page web en utilisant la fonction System.Media.Soundplayer classe ! !!

Raison

Il jouera le son du côté du serveur et non du côté du client.

Comme mentionné dans les liens ci-dessous
- Problème avec la classe C# System.Media.SoundPlayer sur un hôte Web
- Quelle est la manière la plus "compatible" de faire jouer le son automatiquement ? ?

Solution

  • Autre Réponse SO sur ces mêmes exigences.
  • Utilisez tout autre plugin basé sur Flash ou Silverlight.
  • Utilisez la balise html embed ou la balise html5 audio. Des exemples peuvent être vus sur w3schools

Solutions audio basées sur Html5 (fonctionne uniquement sur les navigateurs modernes)

  • <embed> étiquette : Le site <embed> définit un conteneur pour le contenu externe (non-HTML). (Il s'agit d'une balise HTML5, invalide en HTML 4, mais qui fonctionne dans tous les navigateurs).

    <embed height="100" width="100" src="horse.mp3" />

  • <object> étiquette : Le site <object> peut également définir un conteneur pour le contenu externe (non-HTML).

    <object height="100" width="100" data="horse.mp3"></object>

  • <audio> étiquette : Le site <audio> est un élément HTML5, invalide en HTML 4, mais il fonctionne dans tous les navigateurs.

    <audio controls="controls" height="100" width="100"> <source src="horse.mp3" type="audio/mp3" /> <source src="horse.ogg" type="audio/ogg" /> <embed height="100" width="100" src="horse.mp3" /> </audio>

Veuillez noter les problèmes que posent les solutions basées sur html5 : vous devez convertir vos vidéos en différents formats.
- Le <audio> n'est pas validé comme HTML 4 et XHTML.
- Le <embed> n'est pas validé comme HTML 4 et XHTML.
- Le <embed> ne peut pas "se replier" pour afficher une erreur.

5voto

AVD Points 57984

Vous devez utiliser <object> ou <embed> balises html.

<object data="WindowsBalloon.wav"></object>

Ou HTML5 étiquette

<audio src="WindowsBalloon.wav">
  <p>Your browser does not support the audio element.</p>
</audio>

2voto

Bengi Points 340

Cela fonctionne dans HTML5 :

protected void Button1_Click(object sender, EventArgs e)
{
    Response.Write("<embed height='0' width='0' src='Sound.wav' />");
}

1voto

reza Points 11

C'est ce que je pense que vous voulez :

Server.MapPath(string path);

Renvoie le chemin de fichier physique qui correspond au chemin virtuel spécifié sur le serveur Web.

Paramètres : path : Le chemin virtuel du serveur Web.
Les retours : Le chemin du fichier physique qui correspond au chemin.

SoundPlayer s = new SoundPlayer();<br>
s.SoundLocation = **Server.MapPath("WindowsBalloon.wav");**<br>
s.PlaySync();

0voto

Ishwar Singh Points 11

Le chemin complet étant donné, c'est-à-dire c:\wavfiles\WindowsBalloon.wav

Le dossier 'wavfiles' ci-dessus est un dossier réservé aux utilisateurs.

use x.PlayLooping()

si vous voulez lire un fichier sonore en continu

SOYEZ PRUDENT !

utilisez un seul bouton pour sortir de la boucle, sinon le fichier son fonctionnera en continu. Je vous suggère de sortir de la boucle : -

Code

 Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        x.Stop()
    End Sub

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X