Wie kann ich eine WAV-Audiodatei aus den Ressourcen meines Projekts abspielen? Mein Projekt ist eine Windows Forms-Anwendung in C #.
Stream str = Properties.Resources.mySoundFile;
RecordPlayer rp = new RecordPlayer();
rp.Open(new WaveReader(str));
rp.Play();
Von So spielen Sie eine WAV-Audiodatei aus Ressourcen in C # ab.
Da mySoundFile
eine Stream
ist, können Sie den überladenen Konstruktor von SoundPlayer
nutzen, der ein Stream
-Objekt akzeptiert:
System.IO.Stream str = Properties.Resources.mySoundFile;
System.Media.SoundPlayer snd = new System.Media.SoundPlayer(str);
snd.Play();
a) OK, füge zuerst eine Audiodatei (.wav) zur Projektressource hinzu.
b) Nun schreibe einfach diesen Code, um das Audio abzuspielen.
In diesem Code spiele ich beim Formularladeereignis Audio.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Media; // at first you've to import this package to access SoundPlayer
namespace WindowsFormsApplication1
{
public partial class login : Form
{
public login()
{
InitializeComponent();
}
private void login_Load(object sender, EventArgs e)
{
playaudio(); // calling the function
}
private void playaudio() // defining the function
{
SoundPlayer audio = new SoundPlayer(WindowsFormsApplication1.Properties.Resources.Connect); // here WindowsFormsApplication1 is the namespace and Connect is the audio file name
audio.Play();
}
}
}
Das ist es.
Wenn alles fertig ist, führen Sie das Projekt aus (drücken Sie die Taste f5) und genießen Sie Ihren Sound.
Alles Gute. :)
Sie müssen vorsichtig sein, wenn der Garbage Collector den von Ihrem Sound belegten Speicherplatz freigibt, während der Sound noch läuft. Während es selten vorkommt, werden Sie nur gelegentlich Speicher spielen. Hierfür gibt es eine Lösung mit Quellcode, um das zu erreichen, was Sie hier wollen: http://msdn.Microsoft.com/en-us/library/dd743680(VS.85).aspx
Blättern Sie im Bereich "Community Content" ganz nach unten.
Es gibt zwei Möglichkeiten, dies zu tun, soweit ich weiß, Liste unten:
Legen Sie die Datei zunächst im Stammverzeichnis des Projekts ab, und unabhängig davon, ob Sie das Programm im Debug
- oder Release
-Modus ausführen, kann auf die Datei sicher zugegriffen werden. Verwenden Sie dann die Klasse SoundPlayer
, um es zu analysieren.
Wenn Sie das Projekt jedoch für Benutzer freigeben möchten, müssen Sie die Sounddateien mit ihren Ordnerhierarchien außer Hierarchien in den Ordner "Release" unter dem Ordner "bin" kopieren.
var basePath = System.AppDomain.CurrentDomain.BaseDirectory;
SoundPlayer player = new SoundPlayer();
player.SoundLocation = Path.Combine(basePath, @"./../../Reminder.wav");
player.Load();
player.Play();
Folgen Sie unten animate und fügen Sie dem Projekt "Exsiting-Datei" hinzu.
SoundPlayer player = new SoundPlayer(Properties.Resources.Reminder);
player.Play();
Die Stärke dieses Weges ist:
Nur der Ordner "Release" im Verzeichnis "bin" muss beim Ausführen des Programms kopiert werden.
Wenn Sie Sounds in Ihr Projekt einfügen müssen, müssen Sie .wav
-Dateien abspielen. Dann müssen Sie die .wav
-Datei (en) wie folgt hinzufügen.
using System.Media; //write this at the top of the code
SoundPlayer my_wave_file = new SoundPlayer("F:/SOund wave file/airplanefly.wav");
my_wave_file.PlaySync(); // PlaySync means that once sound start then no other activity if form will occur untill sound goes to finish
Denken Sie daran, dass Sie den Pfad der Datei mit dem Format forward slashes (/
) schreiben müssen. Verwenden Sie nicht back slashes (\
), wenn Sie einen Pfad zur Datei angeben. Andernfalls erhalten Sie eine Fehlermeldung .
Wenn Sie möchten, dass andere Dinge während der Wiedergabe des Sounds geschehen, können Sie my_wave_file.PlaySync();
mit my_wave_file.PlayAsync();
ändern.
Diese zwei Zeilen können es schaffen:
SoundPlayer sound = new SoundPlayer(Properties.Resources.solo);
sound.Play();