Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 22.09.2011, 17:44 Titel: Mp3 Playlisten player |
|
|
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 |
|
 |
XOR
Anmeldungsdatum: 23.07.2010 Beiträge: 161
|
Verfasst am: 22.09.2011, 17:54 Titel: |
|
|
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 |
|
 |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 22.09.2011, 17:58 Titel: |
|
|
ja deine vermutung ist sogar richtig danke für den hinweis
 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 22.09.2011, 19:46 Titel: |
|
|
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  _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 22.09.2011, 21:52 Titel: |
|
|
Danke volta ..das löst mein problem ..vielen dank
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 |
|
 |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 30.09.2011, 21:00 Titel: |
|
|
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 ..  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 30.09.2011, 21:04 Titel: |
|
|
Bei acht Tagen Abstand ist das nicht wirklich ein Doppelpost.
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 |
|
 |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 30.09.2011, 21:15 Titel: |
|
|
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 ...  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 30.09.2011, 21:33 Titel: |
|
|
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 |
|
 |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 30.09.2011, 21:54 Titel: |
|
|
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 ?  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 30.09.2011, 22:07 Titel: |
|
|
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 |
|
 |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 30.09.2011, 23:43 Titel: |
|
|
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 |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 01.10.2011, 00:27 Titel: |
|
|
Code: | Sub Concurrent()
Do
Print "*";
Sleep 100, 1
Loop
End Sub
ThreadCreate(Cast(Any Ptr, @Concurrent))
sleep |
|
|
Nach oben |
|
 |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 01.10.2011, 00:50 Titel: |
|
|
Vielen dank an alle ich habs endlich hinbekommen so wie ich es wollte ..
also DANKE, DANKE und nochmals DANKE an alle  |
|
Nach oben |
|
 |
|