AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Problem mit FMODs FMUSIC_StopSong()
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit FMODs FMUSIC_StopSong()

Ein Thema von Benjin · begonnen am 25. Mär 2005 · letzter Beitrag vom 2. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#1

Problem mit FMODs FMUSIC_StopSong()

  Alt 25. Mär 2005, 16:32
Hallo, bei mir wll FMUSIC_StopSong() einfach nicht funktionieren. Es gibt keine Fehlermeldung oder sonstiges, es passiert beim klicken auf den entsprechenden Button einfach nichts.
Ich benutze fsb Dateien, die jeweils eine mp3 Datei enthalten und auch ohne Probleme abgespielt werden.

Ich habe das Problem bereits im FMOD Forum gepostet, deswegen hier einfach ein repost des Problems und des Sourcecodes:

Zitat:
Well, here are excerpts of my code, which means all parts which include FMOD commands:


(Error Warnings are in german, sorry. But they wont matter)

I am intializing the following FMOD component:

Delphi-Quellcode:

var

FMODPlayer: PFMusicModule;



On FormCreate I do

Delphi-Quellcode:

  FMOD_Load(nil);
  InitAudio;
InitAudio looks like this:

Delphi-Quellcode:

procedure TFrmMain.InitAudio;
begin
if FMOD_VERSION > FSOUND_GetVersion then
    begin
      Showmessage('Error: falsche Version');
      Exit;
    end;

//Sets up the soundsystem output mode.
  if not FSOUND_SetOutput(FSOUND_OUTPUT_WINMM) then
    begin
      Showmessage('Error: Fehler bei FSOUND_SetOutput');
      Exit;
    end;

  if not FSOUND_SetDriver(0) then
    begin
      Showmessage('Error: Fehler bei FSOUND_SetDriver');
      Exit;
    end;

  if not FSOUND_Init(24000, 4, 0) then
    begin
      Showmessage('Error! Initializing ' + FMOD_ErrorString(FSOUND_GetError()));
      Exit;
    end;
end;
then I load different songs depending on what entries are selected in a treenavview via:

Delphi-Quellcode:

case AIndexNav of

  2: begin
// ShowMessage('Audio zugewiesen');

      FMODPlayer := FMusic_LoadSong('media\atomic.fsb');
      if FMODPlayer = nil then
        begin
         MessageDlg('failed to load music', mtError, [mbOk], 0 );
        exit;
        end;
      end;

then the Song is played and stopped by the following procedures


Delphi-Quellcode:

procedure TFrmMain.SpdBtnAudioPlayClick(Sender: TObject);
begin

FMusic_PlaySong(FMODPlayer);


SpdBtnAudioPlay.Enabled := false;
SpdBtnAudioStop.Enabled := true;

Audioplaying := True;

end;

procedure TFrmMain.SpdBtnAudioStopClick(Sender: TObject);
begin
SpdBtnAudioPlay.Enabled := true;
SpdBtnAudioStop.Enabled := false;
AudioPlaying := False;
FMUSIC_StopSong(FMODPlayer);
SetAudioFile;

end;
Only stopping won't work.


I would be really thankful for any comments or help!

Weiß da jemand Rat?
..... - Kurt - .....
  Mit Zitat antworten Zitat
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Problem mit FMODs FMUSIC_StopSong()

  Alt 26. Mär 2005, 14:35
Weiß niemand Rat?

Ich will ungerne wieder den Mediaplayer verwenden.
..... - Kurt - .....
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Problem mit FMODs FMUSIC_StopSong()

  Alt 26. Mär 2005, 19:44
ich kannst nicht mit sicherheit sagen.
Ich habe deine qullcode mit meinen vergliechen und dabei ist mir folgendes aufgefallen:
1.
FMODPlayer := FMusic_LoadSong('media\atomic.fsb'); das solltes so heißen:
Delphi-Quellcode:
var
  exedir:String;
....
  exeDir:=ExtractFileDir(ParamStr(0));
  FMODPlayer := FMusic_LoadSong(PChar(exeDir + 'media\atomic.fsb'));
er erwartet einen Ansistring....

2.
Delphi-Quellcode:
if FMOdPlayer <> NIL then
  FMusic_PlaySong(FMODPlayer)
else
  ShowMessage('Fehler');
macht das mal um zu sehen ob überhaupt etwas da ist was gestoppt werden kann...

ich habe jetzt eine Klasse geschrieben mit der man sehr einfach auf Audio dateien zugreifen kann sie unterstützt jeden audiotyp den FMOD abspielen kann. sie kann aber nur eine Music im hintergrund spielen und ein Sound gereusch abspielen.....
und sie hat noch probleme mit FMusic_ bei der länge da bekomme ich immer nur 0, aber ich weiß jetzt das es an FMOD liegt...... wenn du willst kann ich sie dir mal senden...
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Problem mit FMODs FMUSIC_StopSong()

  Alt 27. Mär 2005, 15:28
Ich werds mal entpsrechend ändern.
Allerdings habe ich die empfohlenen Checks schon implementiert.

Außerdem wird die LoadSong und Playsong Funktion durch einen PlayButton auf meiner Form aufgerufen, und dieser funktioniert einwandfrei, d.h. der gewünschte Song wird wiedergegeben.
..... - Kurt - .....
  Mit Zitat antworten Zitat
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Problem mit FMODs FMUSIC_StopSong()

  Alt 27. Mär 2005, 16:05
Also hab mal das Parsen zu ANSIStrings implemeniert, funktioniert leider immer noch nicht. D.h. PlaySong funktioniert, Stopsong aber nicht.
..... - Kurt - .....
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Problem mit FMODs FMUSIC_StopSong()

  Alt 27. Mär 2005, 22:12
lade mal deinen gesammten qullcode code hoch dann kann ich es mir mal ansehen....
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Problem mit FMODs FMUSIC_StopSong()

  Alt 28. Mär 2005, 17:56
Der gezeigte Quellcode ist wirklich alles Relevante.

Wenn du dir wirklich 1000 + Zeilen Code anschauen willst, dann schick ichs dir mal.
Das hier zu posten würde wohl den Rahmen sprengen.
..... - Kurt - .....
  Mit Zitat antworten Zitat
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Problem mit FMODs FMUSIC_StopSong()

  Alt 28. Mär 2005, 18:59
Also inzwischen habe ich noch einige andere Funktionen von FMUSIC ausprobiert.

SetPaused(), StopallSongs funktionieren ebenfalls nicht.
..... - Kurt - .....
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Problem mit FMODs FMUSIC_StopSong()

  Alt 2. Apr 2005, 19:37
Kann sie auch nicht weil die deine funktion hat probleme diese Datei zu laden deshalbt ist die variable NIL.
sende mir mal dein projekt(mimi_17@gmx.de) evtl. kann ich dir dann weiter helfen
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Problem mit FMODs FMUSIC_StopSong()

  Alt 2. Apr 2005, 20:26
Also ich hab jetzt die Lösung, doof auch dass das in keiner Referenz erwähnt wird.

Es gab wohl die schwierigkeiten, weil ich MP3 Dateien als FSB Soundbanks gespeichert habe.
Wie erwähnt lief dort nur die PlaySong() Funktion.

Ich spiele die jetzt als normale Streams ab, nun funktionieren alle Funktionen.

Finde ich ein wenig unstringent.

Entweder wird ein Fomrat unterstützt oder eben nicht, aber so Zwischending ist ärgerlich, v.a. wel es Zeit in Anspruch nimmt das rauszufinden, falls das nicht deutlich in der Ref. geklärt wird.
..... - Kurt - .....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:30 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