webentwicklung-frage-antwort-db.com.de

Wie spielt man eine WAV-Audiodatei von Resources ab?

Wie kann ich eine WAV-Audiodatei aus den Ressourcen meines Projekts abspielen? Mein Projekt ist eine Windows Forms-Anwendung in C #.

34
Genius
  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.

6
Aleks

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();

SoundPlayer-Klassendokumentation (MSDN)

43
Evan Mulawski

a) OK, füge zuerst eine Audiodatei (.wav) zur Projektressource hinzu.

  1. Öffnen Sie den "Projektmappen-Explorer" über die Menüleiste ("ANSICHT") oder drücken Sie einfach Strg + Alt + L. 
  2. Klicken Sie auf die Dropdown-Liste "Eigenschaften". 
  3. Wählen Sie dann "Resource.resx" und drücken Sie die Eingabetaste. 

open project resource

  1. Wählen Sie nun "Audio" aus der Combobox-Liste. 

add audio files to resource

  1. Klicken Sie dann auf "Ressource hinzufügen", wählen Sie die Audiodateien (.wav) aus und klicken Sie auf "Öffnen".

browsing for audio files

  1. Wählen Sie die Audiodatei (en) aus und ändern Sie die Eigenschaften für "Persistenz" in "Eingebettet in .resx".

embedding audio files to resource

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. :)

38
Pran

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.

2
Brad

Es gibt zwei Möglichkeiten, dies zu tun, soweit ich weiß, Liste unten:

  1. Dateipfad verwenden

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();
  1. Ressource verwenden

Folgen Sie unten animate und fügen Sie dem Projekt "Exsiting-Datei" hinzu.

 enter image description here

        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.

0
Bravo Yeung

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.

0
Pir Fahim Shah

Diese zwei Zeilen können es schaffen:

SoundPlayer sound = new SoundPlayer(Properties.Resources.solo);     
                sound.Play(); 
0