![]() |
Audio Resource mit Windows Mediaplayer wiedergeben
Hallo alle mit einander,
ich will eine Audio-Datei aus der Ressourcen mit dem TWindowsMediaPlayer abspielen. (das Audioformat ist noch nicht fest gelegt, zurzeit wir aber .wav benutzt) Leider Kriege Ichs einfach nicht auf die Reihe. :( Über die URL konnte ich schon Dateien von der Festplatte abspielen, aber weiter bin ich auch auf dem Weg nicht gekommen. Kann mir jemand mit seinem Latein weiter helfen ich bin mit meinem nämlich am Ende. Hier noch ein Zusammenfassung meins Codes:
Delphi-Quellcode:
Habt bitte ein bisschen Nachsicht wenn ich mich schlecht ausgedrückt habe, dass erste Mal das ich sowas mache.
procedure PlayResource(Name: string);
var _ResourceStream: TResourceStream; _wmpMediaPlayer: TWindowsMediaPlayer; begin _ResourceStream := TResourceStream.Create(HInstance, Name, RT_RCDATA); _wmpMediaPlayer := TWindowsMediaPlayer.Create(Self); _wmpMediaPlayer.Parent := Self; _wmpMediaPlayer.Visible := False; _wmpMediaPlayer.Settings.AutoStart := False; {Hier muss die Zuweisung geschehen Beim Laden von der Festplatte wer es: _wmpMediaPlayer.Url := AudioFileName; } _wmpMediaPlayer.controls.play; end Danke im Voraus |
AW: Audio Resource mit Windows Mediaplayer wiedergeben
Bringt es was, wenn du _ResourceStream.Position := 0; vor dem Abspielen setzt?
|
AW: Audio Resource mit Windows Mediaplayer wiedergeben
Moment mal, an welcher Stelle erfolgt denn die Verknüpfung zwischen den Resourcestream und dem MediaPlayer?
Zeig doch mal bitte deinen richtigen und gesamten Quelltext. |
AW: Audio Resource mit Windows Mediaplayer wiedergeben
Wie oben schon erwähnt komm ich die beiden einfach nicht auf einen gemeinsamen Nenner.
deswegen gibt es auch noch keine Zuweisung. Und wegen dem Quelltext. Das ist eigentlich der Ganze Quelltext, ich hab nur die Funktionen zum Lautsterke regeln und zum beenden weckgelassen, weil die mit dem Problem Garnichts zu tun haben können. |
AW: Audio Resource mit Windows Mediaplayer wiedergeben
Du benötigst einen FileStream um die Datei abspielen zu können.
Das bedeutet du musst vorher die Datei aus der Resource extrahieren auf die Platte speichern anschließend kannst du die Datei zum Mediaplayer Assign(Zuordnen) und abspielen.
Delphi-Quellcode:
Davon ab
var
fname: string; fStream: TFileStream; ... fname := ExtractFileDir(Paramstr(0))+ Name; _ResourceStream := TResourceStream.Create(HInstance, Name, RT_RCDATA); try fStream := TFileStream.Create(fname, fmCreate); try fStream.CopyFrom(_ResourceStream, 0); finally fStream.Free; end; finally _ResourceStream.Free; end; MediaPlayer1.Close; MediaPlayer1.FileName:= fname; MediaPlayer1.Open; end;
Delphi-Quellcode:
_wmpMediaPlayer.Url := AudioFileName;
ist falsch. _wmpMediaPlayer.FileName wäre korrekt. gruss |
AW: Audio Resource mit Windows Mediaplayer wiedergeben
Das würde Funktionieren.
Leider soll das Programm auch laufen können wenn du keine Schreibrechte hast. Spätesten an diesem Punkt hätte man Probleme.:cry: Trotzdem danke für die Idee. |
AW: Audio Resource mit Windows Mediaplayer wiedergeben
Zitat:
Delphi-Quellcode:
uses mmsystem;
procedure TForm1.Button1Click(Sender: TObject); var hFind, hRes: THandle; Song: PChar; begin hFind := FindResource(HInstance, 'MainSongNameInDerResource', 'WAVE'); if hFind <> 0 then begin hRes := LoadResource(HInstance, hFind); if hRes <> 0 then begin Song := LockResource(hRes); if Assigned(Song) then SndPlaySound(Song, snd_ASync or snd_Memory); UnlockResource(hRes); end; FreeResource(hFind); end; end; |
AW: Audio Resource mit Windows Mediaplayer wiedergeben
Zitat:
|
AW: Audio Resource mit Windows Mediaplayer wiedergeben
Zitat:
Destotrotz hat eine Datei auf der Platte nicht's mit ner URL gemein. gruss |
AW: Audio Resource mit Windows Mediaplayer wiedergeben
Zitat:
Des weiteren hat TWindowsMediaPlayer kein FileName, somit kann ich es nicht zuweisen. Ich gebe zu AudioFileName ist nicht ganz zutreffen, eigentlich müsste es AudioFilePath heißen. Den TMediaPlayer kann ich nicht benutzen, da er teilweise gar nicht oder nur schlecht die Lautsterke regeln kann. Ich muss sie sogar während des Abspielens ändern können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz