AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein verständnis problem beim Clonen eine Streams
Thema durchsuchen
Ansicht
Themen-Optionen

verständnis problem beim Clonen eine Streams

Ein Thema von EWeiss · begonnen am 11. Jul 2013 · letzter Beitrag vom 11. Jul 2013
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

verständnis problem beim Clonen eine Streams

  Alt 11. Jul 2013, 11:00
Es wird eine Streamcopy erstellt.
dem Handle wird der MixerStream übergeben.

Um die Daten jetzt in meinen Wrapper verarbeiten zu können hole ich mir den aktuell gültigen stream
Code:
return _streamcopy.Stream;
Bis dahin wurde er mit den jeweiligen Daten gefüttert die benötigt werden.
Nur leider sind die Daten nicht gültig um sie anschließend weiter verarbeiten zu können.
Erst nach einer umwandlung

Code:
            MusicStream stream = GetCurrentStream();
            if (stream != null)
            {
                BassMix.BASS_Mixer_StreamAddChannel(_streamcopy.ChannelHandle, _streamcopy.Stream, BASSFlag.BASS_DEFAULT);
                _bufferStream = new DSP_BufferStream();
                _bufferStream.ChannelHandle = _streamcopy.Stream;
                _bufferStream.OutputHandle = _streamcopy.ChannelHandle;
                _bufferStream.DSPPriority = -4000;
                _bufferStream.Start();

                float[] fft = new float[4096];
                int tst = Bass.BASS_ChannelGetData(_bufferStream.BufferStream, fft, (int)BASSData.BASS_DATA_FFT8192);

                return _bufferStream.BufferStream;
            }
            else
            {
                return 0;
            }
Sind die Daten vorhanden die ich benötige um sie zu visualisieren.
Die frage wäre warum muss ich die Daten erst wieder befüllen wenn sie doch eigentlich im _mixer.Stream vorhanden sein müßten.

Das selbe hier.

Code:
    public override void DSPCallback(int handle, int channel, IntPtr buffer, int length, IntPtr user)
    {
      try
      {
        this._streamBuffer.Write(buffer, length);
      }
      catch (Exception ex)
      {
        Log.Error("Caught Exception in DSPCallBack. {0}", ex.Message);
      }
    }
Code:
    private int WasApiCallback(IntPtr buffer, int length, IntPtr user)
    {
      if (_mixer == 0)
      {
        return 0;
      }
      try
      {
        return Bass.BASS_ChannelGetData(_mixer, buffer, length);
      }
      catch (Exception)
      { }
      return 0;
    }
Der Buffer wird gefüllt aber die Daten sind widerrum ungültig
obwohl Streamcopy eingentlich eine copy des _mixer.stream ist.


gruss

Geändert von EWeiss (11. Jul 2013 um 11:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: verständnis problem beim Clonen eine Streams

  Alt 11. Jul 2013, 13:08
Mangels umgebenden Deklarationen verstehe ich von dem Code leider nur Bruchstücke. Deshalb nur mal so ins Blaue: setzt du den Stream nach dem Befüllen wieder auf Anfang bevor du ihn verarbeitest?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: verständnis problem beim Clonen eine Streams

  Alt 11. Jul 2013, 13:22
Mangels umgebenden Deklarationen verstehe ich von dem Code leider nur Bruchstücke. Deshalb nur mal so ins Blaue: setzt du den Stream nach dem Befüllen wieder auf Anfang bevor du ihn verarbeitest?
Danke für deine Antwort.

Ich denke habe den Fehler gefunden.
Die bei Mediaportal haben als Rückgabe den kompletten Stream incl. Record meinem Wrapper übergeben
Gültig ist aber nur das Handle vom Channel
Code:
return _streamcopy.ChannelHandle;
Das hat mich jetzt 3 Tage gekostet um den fehler zu bemerken.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz