Autor Beitrag
Programmer
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 19.09.07 13:01 
Hallo!
Kennt jemand vll eine Audio Library um Daten aus einer z.b WAVE-Datei auszulesen!
Wäre echt super und dringend!
MFG
arj
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 378

Win XP/Vista, Debian, (K)Ubuntu
Delphi 5 Prof, Delphi 7 Prof, C# (#Develop, VS 2005), Java (Eclipse), C++, QT, PHP, Python
BeitragVerfasst: Mi 19.09.07 13:16 
wie wäre es mit BASS? Ich glaub die kann das.
www.un4seen.com/

btw: FoSuFu :wink:
Programmer Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 20.09.07 09:12 
Danke für die Antwort!
Die Library entspricht aber leider nicht dem was ich suche!
Trotzdem THX!
Kennt jemand noch welche?
MFG
radio42
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mi 07.11.07 17:06 
Was ist falsch an BASS bzw. was fehlt Dir?
Es existiert ein excellenter Wrapper für C# .Net und VB.Net (BASS.NET) -
und ist damit wahrscheinlich die einzig wirklich vollständige .Net Audio Library für C#, VB, J# oder auch managed C++.
Check it out: www.un4seen.com

Hier ein kleines C# Beispiel zum Auslesen von Audio Daten (PCM-Samples) aus einem .mp3 oder .wav file:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
using System;
using Un4seen.Bass;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      // init BASS using the default output device
      if ( Bass.BASS_Init(-144100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero, null) )
      {
        // create a stream channel from a file
        int stream = Bass.BASS_StreamCreateFile("test.mp3"00, BASSStream.BASS_STREAM_AUTOFREE);
        // create a DSP callback in which you receive the sample data
        myDSPProc = new DSPPROC(MyDSP);
        Bass.BASS_ChannelSetDSP(stream, myDSPProc, IntPtr.Zero, 0);
        // play the channel
        Bass.BASS_ChannelPlay(stream, false);
      }
    }

    private DSPPROC myDSPAddr; // make it global, so that the Garbage Collector can not remove it
    private void MyDSPGain(int handle, int channel, IntPtr buffer, int length, IntPtr user)
    {
      short[] data = new float[length/2]; // 16-bit samples in this example
      // copy from managed to unmanaged memory
      Marshal.Copy(buffer, data, 0, length/2);
      // do whatever you want...
    }
  }
}


Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt