Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Mp3 Playlisten player

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 22.09.2011, 17:44    Titel: Mp3 Playlisten player Antworten mit Zitat

Hallo Leute, ich hab mal wieder ne frage diesmal bezieht es sich darauf dass ich versuche eine wiedergabeliste (playlist) wieder zu geben das heisst eben eine vordefinierte liste von liedern die dann nach und nach wieder gegeben wird ...mein problem list ich bekommes nicht recht hin ...angemerkt sei auch dass die wiedergabe möglicht im hintergrund vonstatten gehen sollte .. mein bisherieger code schaut so aus :

Code:

Sub gadget_mp3pl (ByRef hintergrundmusik As String)
Dim t As Integer
DIM AS INTEGER f
Dim As String puffer
Dim As String txt


f = FREEFILE
OPEN "mmplaylist.txt" FOR INPUT AS #f
Do
f = 1
Line Input #f, txt
FB_MCI_open txt, "Volta"
t = FB_MCI ("len","Volta")
FB_MCI "an","Volta"
Sleep t
f = f + 1
Loop Until EOF(f)
Print "Im Playlisten modus kann nicht weitergearbeitet werden!"
Close #f
End Sub



vielleicht kann mir hier ja einer helfen, wie immer danke im vorraus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
XOR



Anmeldungsdatum: 23.07.2010
Beiträge: 161

BeitragVerfasst am: 22.09.2011, 17:54    Titel: Antworten mit Zitat

Code:
f = 1

Code:
f = f + 1

was sollen denn diese beiden stellen?
dadurch bekommst du nur probleme.
ich nehme an das du sie genommen hast um in die nachste zeile zu springen, das macht aber "Line Input" schon selbst.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 22.09.2011, 17:58    Titel: Antworten mit Zitat

ja deine vermutung ist sogar richtig danke für den hinweis
zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 22.09.2011, 19:46    Titel: Antworten mit Zitat

versuch es einmal so:
Code:
#include once "windows.bi"
#include once "win/mmsystem.bi"

Function FB_MCI(ByVal FB_MCICOMMAND As String, ByVal f_Alias As String) As Integer
    Dim temp As String *256
    f_Alias = UCase(f_Alias)
    Select Case LCase(Trim(FB_MCICOMMAND))
      Case "play","on","an"
          mciSendString("play " & f_Alias &" from " & 0, NULL, 0, 0)
      Case "close","off","aus"
          mciSendString("close " & f_Alias, NULL, 0, 0)
      Case "stop"
          mciSendString("stop " & f_Alias, NULL, 0, 0)
      Case "length","len"
          mciSendString("status " & f_Alias & " length", temp, 256,0)
          FB_MCI = Val(temp)
      Case "position","pos"
          mciSendString("status " & f_Alias & " position", temp, 256, 0)
          FB_MCI = Val(temp)
    End Select
End Function

Function FB_MCI_open(ByVal FILENAME As String, ByVal  f_Alias As String) As Integer
    f_Alias = UCase(f_Alias)
    FB_MCI ("close",f_Alias)
    FB_MCI_open = mciSendString("open " & Chr(34) & FILENAME & Chr(34) & " alias " & f_Alias, NULL, 0, 0)
    mciSendString ("set " & f_Alias & " time format milliseconds", NULL, 0, 0)
End Function


Sub gadget_mp3pl (ByVal Filename As String)
   Dim As Integer f, t
   Dim As String puffer,txt, ali = "hitori04"

   f = FreeFile
   Open Filename For Input As #f
   Do
      Line Input #f, txt
      FB_MCI_open txt, ali
      t = FB_MCI ("len",ali)
      FB_MCI "an",ali
      Sleep t+500,1
      FB_MCI "aus",ali      
   Loop Until Eof(f)
   Close #f
End Sub
gadget_mp3pl "mmplaylist.txt"

Sleep
Natürlich sollten in der txt-Datei ein paar mp3-Titel stehen zwinkern
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 22.09.2011, 21:52    Titel: Antworten mit Zitat

Danke volta ..das löst mein problem ..vielen dank happy
jetzt habe ich aber noch eine frage ich arbeite momentan an ein dos clon http://forum.qbasic.at/viewtopic.php?t=7612
dort hatte ich schon einmal wegen eines anderen problems gefragt ...
jedenfalls würde ich gerne während die playlist abgespielt wird auf diesem dos clon weiterarbeiten können , ist sowas überhaupt machbar ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 30.09.2011, 21:00    Titel: Antworten mit Zitat

Sorry für den doppel post aber ich komme echt nicht weiter egal was ich versuche .. ich schaffe es nicht die playlisten wiedergabe, die ja nun funktioniert dank volta, wieder zu geben und gleichzeitig mit input weiterarbeiten zu können .. mit dem Kopf durch die Mauer wollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 30.09.2011, 21:04    Titel: Antworten mit Zitat

Bei acht Tagen Abstand ist das nicht wirklich ein Doppelpost. lächeln
Wenn du die Wiedergabe als Thread startest, solltest du eigentlich im Hauptprogramm weiterarbeiten können.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 30.09.2011, 21:15    Titel: Antworten mit Zitat

ich habe mich mal eben schnell durchgewühlt was threading überhaupt ist und muss sagen dass ich aus den beispielen nich wirklich schlau geworden bin ... verlegen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 30.09.2011, 21:33    Titel: Antworten mit Zitat

Threads bieten einfach die Möglichkeit, mehrere Programmflüsse gleichzeitig laufen zu lassen. Einen Thread, der vom Hauptthread (dem Hauptprogram) verschieden ist, ist üblicherweise eine Funktion, so wie es im von nemored verlinkten Artikel beschrieben steht.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 30.09.2011, 21:54    Titel: Antworten mit Zitat

Code:


Dim Shared mutex As Any Ptr
Sub gadget_mp3pl (Byref Filename As String)
   Dim As Integer f, t, a = 1
   Dim As String puffer,txt, ali = "hitori04"
   
   mutex = MutexCreate
   f = FreeFile
   Open "mmplaylist.txt" For Input As #f
   Do
      Line Input #f, txt
      FB_MCI_open txt, ali
      t = FB_MCI ("len",ali)
      FB_MCI "an",ali
       MutexLock(mutex)
   Loop Until Eof(f)
   Close #f
 While InKey <> ""
    MutexUnLock(mutex)
 Wend

End Sub




will einfach nich funktionieren .. anscheinend habe ich das mit mutex noch nich ganz richtig verstanden oder ? mit den Augen rollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 30.09.2011, 22:07    Titel: Antworten mit Zitat

ja ... ein mutex brauchst du lediglich, wenn zwei Prozesse auf dieselben Resourcen zugreifen, damit (z. B.) nicht beide gleichzeitig in dieselbe Variable schreiben. Der Mutex wird üblicherweise auch im Hauptprogramm definiert und immer paarweise gesperrt/entsperrt.

Wichtiger sind für dich im Augenblick erst einmal THREADCREATE und Konsorten.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 30.09.2011, 23:43    Titel: Antworten mit Zitat

könnte mir jemand vielleicht ein unabhängiges beispiel für threadcreate geben ? das wäre sehr nett ... so komme ich nämlich einfach nich klar ..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 01.10.2011, 00:27    Titel: Antworten mit Zitat

Code:
Sub Concurrent()
   Do
     Print "*";
     Sleep 100, 1
   Loop
End Sub

ThreadCreate(Cast(Any Ptr, @Concurrent))
sleep
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 01.10.2011, 00:50    Titel: Antworten mit Zitat

Vielen dank an alle ich habs endlich hinbekommen so wie ich es wollte ..
also DANKE, DANKE und nochmals DANKE an alle grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz