#1 24. Februar 2009 Zuletzt von einem Moderator bearbeitet: 14. April 2017 MP3 Player PLAYERnachdems von mir schon lang nichtsmer öffentlich gab und mir grad langweilig ist, veröffentlich ich den hier mal. ist nen mp3 player den ich mal für nen kumpel gemacht hab, dementsprechend ist er statisch, auf seine ansprüche zugeschnitten. FUNKTIONSWEISE (zum abspielen kommt fmod zum einsatz)er durchsucht alle ordner, die im selben ordner wie die exe liegen, ob in diesem ordner eine folder.jpg ist. wenn ja, werden alle lieder in diesem ordner (und subfolders) mit dem bild aus der folder.jpg geaddet. klickt der user auf ein bild, so wird ständig random ein lied aus der folder (bzw subfolder) gespielt. DOWNLOAD No File | xup.in SCREENSHOT QUELLCODE (der wichtigste, der rest sollte logisch sein) Code: Public Type PLAYER_TYPE ARTIST As String SONG() As String End Type Public PLAYER_INDEX As Integer Public PLAYER_HANDLE As Long Public PLAYER_VOLUME As Long Public PLAYER_POSITION As Long Public PLAYER_LENGTH As Long Public PLAYER_ARTIST As String Public PLAYER_SONG As String Public PLAYER_TYPE_ARRAY() As PLAYER_TYPE '+++++++++++++++++++++++++++++++++++++++++++++ 'Form_Load '+++++++++++++++++++++++++++++++++++++++++++++ Private Sub Form_Load() Const FILE_ATTRIBUTE_ARCHIVE = &H20 Const FILE_ATTRIBUTE_COMPRESSED = &H800 Const FILE_ATTRIBUTE_DIRECTORY = &H10 Const FILE_ATTRIBUTE_HIDDEN = &H2 Const FILE_ATTRIBUTE_NORMAL = &H80 Const FILE_ATTRIBUTE_READONLY = &H1 Const FILE_ATTRIBUTE_SYSTEM = &H4 Const FILE_ATTRIBUTE_TEMPORARY = &H100 Dim LONG_01 As Long Dim LONG_02 As Long Dim LONG_03 As Long Dim STRING_01 As String Dim GENERAL_FILESYSTEM_01 As GENERAL_FILESYSTEM PLAYER_INIT GENERAL.Show ReDim PLAYER_TYPE_ARRAY(0) LONG_01 = FindFirstFileA(App.Path & "\" & "*.*", GENERAL_FILESYSTEM_01) If (LONG_01 <> -1) Then LONG_02 = 200 LONG_03 = 200 Do STRING_01 = Left$(GENERAL_FILESYSTEM_01.StringFileName, InStr(GENERAL_FILESYSTEM_01.StringFileName, Chr$(0)) - 1) If ((GENERAL_FILESYSTEM_01.LongAttributes And FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) Then If (STRING_01 <> ".") And (STRING_01 <> "..") And (STRING_01 <> "System Volume Information") Then If (Dir$(App.Path & "\" & STRING_01 & "\Folder.jpg", vbNormal) <> "") Then DoEvents PLAYER_TYPE_ARRAY(UBound(PLAYER_TYPE_ARRAY)).ARTIST = STRING_01 ReDim PLAYER_TYPE_ARRAY(UBound(PLAYER_TYPE_ARRAY)).SONG(0) PLAYER_READ App.Path & "\" & STRING_01 & "\" CONTROL_THUMBNAIL(UBound(PLAYER_TYPE_ARRAY)).LOAD App.Path & "\" & STRING_01 & "\Folder.jpg" CONTROL_THUMBNAIL(UBound(PLAYER_TYPE_ARRAY)).Left = LONG_02 CONTROL_THUMBNAIL(UBound(PLAYER_TYPE_ARRAY)).Top = LONG_03 CONTROL_THUMBNAIL(UBound(PLAYER_TYPE_ARRAY)).Visible = True ReDim Preserve PLAYER_TYPE_ARRAY(0 To UBound(PLAYER_TYPE_ARRAY) + 1) LOAD CONTROL_THUMBNAIL(UBound(PLAYER_TYPE_ARRAY)) LONG_02 = LONG_02 + 2200 If LONG_02 = 11200 Then LONG_02 = 200 LONG_03 = LONG_03 + 2200 End If PICTURE_PLAYER.Top = LONG_03 + 2200 PICTURE_GENERAL.Height = LONG_03 + 2900 GENERAL.Height = LONG_03 + 2900 End If End If End If Loop While FindNextFileA(LONG_01, GENERAL_FILESYSTEM_01) End If FindClose LONG_01 End Sub '+++++++++++++++++++++++++++++++++++++++++++++ 'PLAYER_READ '+++++++++++++++++++++++++++++++++++++++++++++ Public Sub PLAYER_READ(ByRef VALUE As String) Const FILE_ATTRIBUTE_ARCHIVE = &H20 Const FILE_ATTRIBUTE_COMPRESSED = &H800 Const FILE_ATTRIBUTE_DIRECTORY = &H10 Const FILE_ATTRIBUTE_HIDDEN = &H2 Const FILE_ATTRIBUTE_NORMAL = &H80 Const FILE_ATTRIBUTE_READONLY = &H1 Const FILE_ATTRIBUTE_SYSTEM = &H4 Const FILE_ATTRIBUTE_TEMPORARY = &H100 Dim LONG_01 As Long Dim STRING_01 As String Dim GENERAL_FILESYSTEM_01 As GENERAL_FILESYSTEM LONG_01 = FindFirstFileA(VALUE & "*.*", GENERAL_FILESYSTEM_01) If (LONG_01 <> -1) Then Do STRING_01 = Left$(GENERAL_FILESYSTEM_01.StringFileName, InStr(GENERAL_FILESYSTEM_01.StringFileName, Chr$(0)) - 1) If ((GENERAL_FILESYSTEM_01.LongAttributes And FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) Then If (STRING_01 <> ".") And (STRING_01 <> "..") And (STRING_01 <> "System Volume Information") Then PLAYER_READ VALUE & STRING_01 & "\" End If Else If (Right(STRING_01, 4) = ".mp3") Then PLAYER_TYPE_ARRAY(UBound(PLAYER_TYPE_ARRAY)).SONG(UBound(PLAYER_TYPE_ARRAY(UBound(PLAYER_TYPE_ARRAY)).SONG)) = VALUE & STRING_01 ReDim Preserve PLAYER_TYPE_ARRAY(UBound(PLAYER_TYPE_ARRAY)).SONG(0 To UBound(PLAYER_TYPE_ARRAY(UBound(PLAYER_TYPE_ARRAY)).SONG) + 1) End If End If Loop While FindNextFileA(LONG_01, GENERAL_FILESYSTEM_01) End If FindClose LONG_01 End Sub '+++++++++++++++++++++++++++++++++++++++++++++ 'PLAYER_PLAY '+++++++++++++++++++++++++++++++++++++++++++++ Public Sub PLAYER_PLAY() Dim LONG_01 As Long Randomize LONG_01 = Int(UBound(PLAYER_TYPE_ARRAY(PLAYER_INDEX).SONG) * Rnd) FSOUND_Stream_Stop PLAYER_HANDLE FSOUND_Stream_Close PLAYER_HANDLE PLAYER_HANDLE = FSOUND_Stream_Open(PLAYER_TYPE_ARRAY(PLAYER_INDEX).SONG(LONG_01), FSOUND_NORMAL, 0, 0) PLAYER_ARTIST = PLAYER_TYPE_ARRAY(PLAYER_INDEX).ARTIST PLAYER_SONG = Mid(PLAYER_TYPE_ARRAY(PLAYER_INDEX).SONG(LONG_01), InStrRev(PLAYER_TYPE_ARRAY(PLAYER_INDEX).SONG(LONG_01), "\") + 1, Len(PLAYER_TYPE_ARRAY(PLAYER_INDEX).SONG(LONG_01)) - InStrRev(PLAYER_TYPE_ARRAY(PLAYER_INDEX).SONG(LONG_01), "\") - 4) If (PLAYER_HANDLE = 0) Then MsgBox "FMOD ERROR" FSOUND_Close End End If FSOUND_Stream_Play 0, PLAYER_HANDLE PLAYER_UPDATE_VOLUME PLAYER_LENGTH = FSOUND_Stream_GetLengthMs(PLAYER_HANDLE) End Sub + Multi-Zitat Zitieren
#2 24. Februar 2009 AW: PLAYER gut, das gleiche macht mein itunes auch, aber nice work, jetzt noch scrobbeln mit last.fm einbauen und e voila + Multi-Zitat Zitieren
#3 24. Februar 2009 AW: PLAYER ich hatte auch erst songbird in den hängen, nur wollt ich das ganze auf ne dvd packen (bday) - das wäre mit itunes oder songbird problematisch gewesen. außerdem wars eh net sonderlich viel arbeit und ich kanns meinen wünschen anpassen. + Multi-Zitat Zitieren