Playlist Converter
Übersicht

![]() |
StepTigerBetreff: Playlist Converter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit dem folgenden Code kann man PLS Dateien in M3U Dateien und umgekehrt umwandeln.
Bald folgt noch WPL, wenn ich herausfinde, was die tid macht. Weiß es jemand von euch? Code: [AUSKLAPPEN] Type musik
Field pfad$ Field num Field name$ End Type file$="E:\korsikaurlaub\dadada.pls" save$="E:\korsikaurlaub\dadada.m3u" ending$=Right$(file$,3) sending$=Right$(save$,3) fl=ReadFile(file$) fl2=WriteFile(save$) tnum=0 If ending$="pls" While Not Eof(fl) d$=ReadLine$(fl) pos=Instr(d$,"=") If pos num=Len(d$)-pos tnum=tnum+1 ttex$=Right$(d$,num) Print ttex$ ttex2$=ttex$ While Instr(ttex2$,"\") pos=Instr(ttex2$,"\") num=Len(ttex2$)-pos ttex2$=Right$(ttex2$,num) Wend r.musik=New musik r\pfad$=ttex$ r\num=tnum r\name$=ttex2$ Print r\name$ EndIf Wend EndIf If ending$="m3u" While Not Eof(fl) ReadLine fl ReadLine fl ttex$=ReadLine$(fl) ttex2$=ttex$ tnum=tnum+1 While Instr(ttex2$,"\") pos=Instr(ttex2$,"\") num=Len(ttex2$)-pos ttex2$=Right$(ttex2$,num) Wend r.musik=New musik r\pfad$=ttex$ r\num=tnum r\name$=ttex2$ Print r\name$ Wend EndIf Print sending$ If sending$="m3u" WriteLine fl2,"#EXTM3U" For r.musik=Each musik If r\name$<>"" WriteLine fl2,"#EXTINF:0,"+r\name$ WriteLine fl2,r\pfad$ WriteLine fl2,"" EndIf Next WriteLine fl2,"" EndIf If sending$="pls" For r.musik=Each musik If r\name$<>"" WriteLine fl2,"File"+r\num+"="+r\pfad$ EndIf Next EndIf WaitKey End |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
AMY |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wozu brauchst du einen Konverter?
Ich habe einige Funktionen geschrieben die verschiedene Playlisten auslesen. Unter anderem auch m3u, pls, wpl und noch mehr. Zusätzlich habe ich noch eine Funktion geschrieben die später sämtliche playlisten auslesen soll. Ist schon fast fertig. Kann ich ja mal posten wenn ich es mal wiederfinde. Mein 'Playlisten-Reader' arbeitet mit einem DimFeld und ein paar Globalen. Finde ich übersichtlicher muss aber jeder selber wissen. Bis spätestens morgen dürfte ich es haben. |
||
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read! |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dim Felder und Globalen sind übersichtlicher als Types???
Ich denk mir jetzt meinen Teil. Der Konverter ist für den Windows Media Player, da der keine PLS Dateien abspielt. War etwas, was ich mir eben in 10 Minuten gebastelt habe. Poste bitte deinen Code. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
AMY |
![]() Antworten mit Zitat ![]() |
---|---|---|
Diese Funktionen benutze ich in meinem MediaCenter. Als Oberfläche von BlitzBasic benutze ich VisualBlitz. Die Funktionen kann man da zusammenfassen, und es wirkt dadurch sehr viel übersichtlicher. Falls jemand fragen oder anregungen hat kann sie mir doch bitte mitteilen. Freue mich über jede Kritik oder Verbesserungsvorschläge. Das Komplette MediaCenter wird wahrscheinlich erst im Februar hier im Forum als OpenSource erscheinen. Bis dahin will ich doch noch etwas daran verbessern. Im Moment Bin ich dabei Skins in das MediaCenter zu integrieren.
Hier mal die Playlisten Funktionen: Code: [AUSKLAPPEN] Dim MultiMediaFile$(1):Dim Zahlen(0):Dim ICIB$(0,0) Global Size,Anzahl% Global I,J Function ReadM3U(filename$) t=ReadFile(filename) Repeat lines=lines+1 ReadLine(t) Until Eof(t) CloseFile t file=ReadFile(filename) Dim MultiMediaFile$(lines) For I=1 To lines test$=ReadLine(file) If Len(test)=0 Then MultiMediaFile$(I)=ReadLine(file) Else MultiMediaFile$(I)=test If Instr(MultiMediaFile$(I),"#EXTINF:")>0 Then MultiMediaFile$(I)=ReadLine(file):size=size+1 If Instr(MultiMediaFile$(I),":")=2 Then MultiMediaFile$(I)=MultiMediaFile$(I) Else MultiMediaFile$(I)=Left$(Filename,3)+MultiMediaFile$(I) Next Return Size End Function Function ReadPLS(filename$) t=ReadFile(filename) Repeat size=size+1 ReadLine(t) Until Eof(t) CloseFile t file=ReadFile(filename) Dim MultiMediaFile$(size) For I=1 To size/3 .RepeatRL a$=ReadLine(file) If a="" Then Exit If Left$(a,4)="File" Then MultiMediaFile$(I)=Mid$(a,Instr(a,"=")+1):Anzahl=Anzahl+1 Else Goto RepeatRL If Instr(MultiMediaFile$(I),":")=2 Then MultiMediaFile$(I)=MultiMediaFile$(I) Else MultiMediaFile$(I)=Left$(Filename,3)+MultiMediaFile$(I) Next Return Anzahl End Function Function ReadWPL(filename$) t=ReadFile(filename) Repeat size=size+1 ReadLine(t) Until Eof(t) size=size-12 CloseFile t file=ReadFile(filename) Dim MultiMediaFile$(size) For I=1 To size .RepeatRL a$=ReadLine(file) If a="" Then Exit If Instr(a," <media src=")>0 Then MultiMediaFile$(I)=Mid$(a,Instr(a,"=")+2,Len(a)-3-(Instr(a,"=")+1)):Anzahl=anzahl+1 Else Goto RepeatRL If Instr(MultiMediaFile$(I),":")=2 Then MultiMediaFile$(I)=MultiMediaFile$(I) Else MultiMediaFile$(I)=Left$(Filename,3)+MultiMediaFile$(I) Next Return Anzahl End Function Function ReadASX(filename$) t=ReadFile(filename) Repeat sizeL$=ReadLine(t) size=size+1 If Instr(sizeL,"SourceURL")>0 Then Files=Files+1 Until Eof(t) file=ReadFile(filename) Dim MultiMediaFile$(size+1) For I=1 To Files .RepeatRL a$=ReadLine(file) If Instr(a,"SourceURL")>0 Then MultiMediaFile(I)=Mid$(a,Instr(a,"=",Instr(a,"SourceURL"))+3,Len(a)-4-(Instr(a,"=",Instr(a,"SourceURL"))+2)):Anzahl=anzahl+1 Else Goto RepeatRL If Instr(MultiMediaFile$(I),":")=2 Then MultiMediaFile$(I)=MultiMediaFile$(I) Else MultiMediaFile$(I)=Left$(Filename,3)+MultiMediaFile$(I) Next Return Anzahl End Function Function ReadUniPLS(filename$);siehe Kommentare erweitern ;;;;!!!Relative Pfadangaben gehen immer von der Playlist aus!!! t=ReadFile(filename) Repeat size=size+1 ReadLine(t) Until Eof(t) CloseFile t ;Hinzufügen (Komplette Pfadangabe, dann relativ), z.B.: 'C:\Ordner\Bild1.bmp' dann 'Bild2.bmp' bei Ordnerwechsel wieder komplett(oder relativ) ;Falls mehrere Formen davon in einer Datei, dann For I=I to size; und I bei fund der ersten datei auf eins setzen ;(Komplette Pfadangabe oder Relative Pfadangabe), z.B.: 'C:\Ordner\Bild.bmp' oder 'Ordner\Bild.bmp' file=ReadFile(filename) Dim MultiMediaFile$(size) For I=1 To size .RepeatRL1 MultiMediaFile(I)=ReadLine(file) If Eof(file) Then Exit If FileType(MultiMediaFile(I))=1 Then MultiMediaFile(I)=MultiMediaFile(I) ElseIf FileType(MultiMediaFile$(I)=Left$(Filename,3)+MultiMediaFile$(I))=1 Then MultiMediaFile$(I)=Left$(Filename,3)+MultiMediaFile$(I):Files1=Files1+1 Else Goto RepeatRL1 Next CloseFile(file) ;(Komplette Pfadeingabe in Text eingebaut), z.B.: 'UnbekannterStringc:\ordner\bild.bmpmitnochmehrtext' file=ReadFile(filename) Dim MultiMediaFile$(size) For I=1 To size .RepeatRL2 a$=ReadLine(file) If Eof(file) Then Exit If Instr(a,":")>0 Then If FileType(Mid$(Instr(a,":")-1,Instr(a,".",Instr(a,":")+1)+4))=1 Then MultiMediaFile(I)=Mid$(Instr(a,":")-1,Instr(a,".",Instr(a,":")+1)+4):Files2=Files2+1 Else Goto RepeatRL2 Next CloseFile(file) ;(Relative Pfadangabe in Text eingebaut), z.B.: 'UnbekannterString\ordner\bild.bmpmitnochmehrtext' file=ReadFile(filename) Dim MultiMediaFile$(size) For I=1 To size .RepeatRL3 a$=ReadLine(file) If Eof(file) Then Exit If Instr(a,"\")>0 Then FirstBackslash=Instr(a$,"\") Repeat LastBackslash=BackSlashESC+1 BackSlashESC=Instr(a$,"\",LastBackslash) Until BackSlashESC=0 LastBackslash=LastBackslash-1 FirstPoint=Instr(a$,".") Repeat LastPoint=PointESC+1 PointESC=Instr(a$,".",LastPoint) Until PointESC=0 LastPoint=LastPoint-1 Texte$=Mid$(a,FirstBackslash,LastPoint-FirstBackslash+4) If FileType(Left$(Filename,2)+Mid$(a,FirstBackslash,LastPoint-FirstBackslash+4))=1 Then MultiMediaFile(I)=Left$(Filename,2)+Mid$(a,FirstBackslash,LastPoint-FirstBackslash+4):Files3=Files3+1 Else Files3=Files3 EndIf Else Goto RepeatRL3 End If Next CloseFile(file) FilesAll=Files1+Files2+Files3 Return FilesAll End Function Und für mehrere Dateien gibt es auch noch das: Code: [AUSKLAPPEN] commandliner$=CommandLine() Repeat Last34=C34+1 C34=Instr(CommandLine(),Chr$(34),Last34) If C34>0 Then Count34=count34+1 Until C34=0 If Count34>2 Then Files=Count34/2:Anzahl=MultiSelect(Files,Commandliner):If RandomPlay=1 Then PlayRandom(delayer) Else Play(delayer) If Count34=2 Then Commandliner1$=Mid$(Commandliner$,2,Len(commandliner)-2) Else Commandliner1$=Commandliner If Count34<2 Then Commandliner1=Commandliner Function MultiSelect(files,commandliner$) Dim MultiMediaFile$(Files) For Bitches=1 To Files Start=Instr(Commandliner,Chr(34),Ende+1)+1 Ende=Instr(Commandliner,Chr(34),Start+1) BackUp$=Mid$(commandliner,start,ende) MultiMediaFile(Bitches)=Left$(BackUp,Instr(BackUp,Chr(34))-1) Next Return Files End Function Function Play(dela,J=0) screenx=GraphicsX screeny=GraphicsY If J>Anzahl And RepeatPlay=1 Then J=0 If J>Anzahl And RepeatPlay=0 Then End For J=J+1 To Anzahl Repeat Select Lower$(Right$(MultiMediaFile$(J),3)) Case "ogg","mp3" If NoAudioSkinMode=1 Then ViewSound(MultiMediaFile(J),J,VersionsNummer) Else ViewSoundSkinned(MultiMediaFile(J),J,VersionsNummer) EndIf Case "jpg" Graphics GraphicsX,GraphicsY,32,GraphicsMode readimg=LoadImage(MultiMediaFile(J));+1)) x=ImageWidth(readimg) y=ImageHeight(readimg) div_x#=Float#(GraphicsX)/Float#(x) div_y#=Float#(GraphicsY)/Float#(y) If div_x=>div_y Then tpixx=(GraphicsX-(x*div_y))/2 tpixy=(GraphicsY-(y*div_y))/2 Else tpixx=(GraphicsX-(x*div_x))/2 tpixy=(GraphicsY-(y*div_x))/2 End If If x>screenx Or y>screeny Or x>screenx And y>screeny Then ScaleImageFast(readimg,FrontBuffer(),tpixx,tpixy,GraphicsX,GraphicsY) Else drawy=(screeny-y)/2 drawx=(screenx-x)/2 DrawImage readimg,drawx,drawy End If start=MilliSecs() Repeat AppTitle dela+" Millisecs "+MultiMediaFile$(Zahlen(J));+1)) If KeyDown(203) Then dela=dela-1:If KeyDown(205) Then dela=dela+1 Ende=MilliSecs() Until ende-start=>dela Exit End Select Forever Next End End Function Function PlayRandom(dela,J=0) screenx=GraphicsX screeny=GraphicsY If J>Anzahl And RepeatPlay=1 Then J=0 If J>Anzahl And RepeatPlay=0 Then End SeedRnd MilliSecs() For JR=JR+1 To Anzahl Repeat SeedRnd MilliSecs() JR=Rand(1,Anzahl) a$="" a$=MultiMediaFile(JR) If Lower$(Right$(MultiMediaFile$(JR),3))="jpg" Then Graphics GraphicsX,GraphicsY,32,GraphicsMode readimg=LoadImage(MultiMediaFile(JR)) x=ImageWidth(readimg) y=ImageHeight(readimg) div_x#=Float#(GraphicsX)/Float#(x) div_y#=Float#(GraphicsY)/Float#(y) If div_x=>div_y Then tpixx=(GraphicsX-(x*div_y))/2 tpixy=(GraphicsY-(y*div_y))/2 Else tpixx=(GraphicsX-(x*div_x))/2 tpixy=(GraphicsY-(y*div_x))/2 End If If x>screenx Or y>screeny Or x>screenx And y>screeny Then ScaleImageFast(readimg,FrontBuffer(),tpixx,tpixy,GraphicsX,GraphicsY) Else drawy=(screeny-y)/2 drawx=(screenx-x)/2 DrawImage readimg,drawx,drawy End If start=MilliSecs() Repeat AppTitle dela+" Millisecs "+MultiMediaFile$(JR) If KeyDown(203) Then dela=dela-1:If KeyDown(205) Then dela=dela+1 Ende=MilliSecs() Until ende-start=>dela Exit End If If Lower$(Right$(MultiMediaFile$(JR),3))="ogg" Then ViewSound(MultiMediaFile(JR),JR,VersionsNummer) If Lower$(Right$(MultiMediaFile$(JR),3))="mp3" Then ViewSound(MultiMediaFile(JR),JR,VersionsNummer) Forever Next End End Function |
||
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read! |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schon wieder einer, der nen alten Thread ausgräbt... ![]() StepTiger hat Folgendes geschrieben: Bald folgt noch WPL, wenn ich herausfinde, was die tid macht. Weiß es jemand von euch? Hast du es schon herausgefunden? oder jemand anderer? Interessiert mich nämlich seit Neuestem auch. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab mich nicht wieder damit befasst. Ich schau mal demnächst. | ||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es interessiert mich noch immer ![]() Auf Wotsit findet man kein WPL, auch nach einer ausgedehnten Google-Suche blieb ich erfolglos. Weiss denn wirklich niemand Bescheid? |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group