Wie kann man seinen eigenen MP3 Player erstellen?
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.
-
-
-
Das geht z.B. mit DirectShow.
-
-
Ich habe mal so einen Ranzigen Wrapper-Wrapper für die Bass.NET.dll geschrieben, um das Arbeiten damit einfacher zu machen:
Spoiler anzeigen
VB.NET-Quellcode
- ''BassNetPlayer
- Imports Un4seen.Bass
- Public Class BassNetPlayer
- Sub New()
- Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_CPSPEAKERS, IntPtr.Zero, Nothing)
- End Sub
- Public Event PlayModeChanged(ByVal M As PlayModes)
- Public Event TrackChanged As EventHandler
- Public ReadOnly SupportedFormats As String() = {".mp3", ".mp2", ".mp1", ".ogg", ".wav", ".aiff"}
- Public Function GetPositionAsTimeSpan() As TimeSpan
- Dim s As Double = Bass.BASS_ChannelBytes2Seconds(Me.MusicStream, Me.Position)
- Dim span = TimeSpan.FromSeconds(s)
- Return span
- End Function
- Property Volume As Single
- Get
- Dim val As Single = 0.0F
- Bass.BASS_ChannelGetAttribute(Me.MusicStream, BASSAttribute.BASS_ATTRIB_VOL, val)
- Return val
- End Get
- Set(ByVal value As Single)
- Bass.BASS_ChannelSetAttribute(Me.MusicStream, BASSAttribute.BASS_ATTRIB_VOL, value)
- End Set
- End Property
- Public ReadOnly Property TrackLength As Long
- Get
- Return Bass.BASS_ChannelGetLength(Me.MusicStream)
- End Get
- End Property
- Public Property Position As Long
- Get
- Return Bass.BASS_ChannelGetPosition(Me.MusicStream)
- End Get
- Set(ByVal value As Long)
- Bass.BASS_ChannelSetPosition(Me.MusicStream, value)
- End Set
- End Property
- Private Stream As Integer = 0
- Public ReadOnly Property MusicStream As Integer
- Get
- Return Stream
- End Get
- End Property
- Private FN As String = String.Empty
- Public Property Filename As String
- Get
- Return FN
- End Get
- Set(ByVal value As String)
- If Not FN.Equals(value) Then
- FN = value
- Me.Stop()
- Stream = Bass.BASS_StreamCreateFile(FN, 0, 0, BASSFlag.BASS_STREAM_AUTOFREE Or BASSFlag.BASS_STREAM_PRESCAN)
- RaiseEvent TrackChanged(Me, New EventArgs())
- End If
- End Set
- End Property
- Public Sub [Stop]()
- Bass.BASS_ChannelStop(Me.MusicStream)
- PM = PlayModes.Stopped
- RaiseEvent PlayModeChanged(PM)
- End Sub
- Public Sub Pause()
- Bass.BASS_ChannelPause(Me.MusicStream)
- PM = PlayModes.Paused
- RaiseEvent PlayModeChanged(PM)
- End Sub
- Public Sub Play(Optional ByVal [Loop] As Boolean = False)
- Bass.BASS_ChannelPlay(Me.MusicStream, [Loop])
- PM = PlayModes.Playing
- RaiseEvent PlayModeChanged(PM)
- End Sub
- Private PM As PlayModes = PlayModes.Paused
- Public ReadOnly Property PlayMode As PlayModes
- Get
- Return PM
- End Get
- End Property
- Public Enum PlayModes As Integer
- Playing
- Paused
- Stopped
- End Enum
- End Class
[VB.NET] Bass.Dll Tutorial
/nicht getestet -
-
Wenn hier schon alle am Werben sind:
Hier ist meine Mediaplayer-DLL für DirectShow. -
Du brauchst:
-1 Form
-1 Checkbox
-1 Timer (Interval 100)
Code irgendwo ausserhalb einer Sub einfügen:
VB.NET-Quellcode
- #Region " MP3-Datei abspielen "
- Public Function MP3_Play(ByVal sFile As String, _
- ByVal sAlias As String) As Boolean
- Dim bResult As Boolean
- Dim sBuffer As String
- Dim lResult As Long
- sBuffer = Space$(255)
- lResult = GetShortPathName(sFile, sBuffer, Len(sBuffer))
- If lResult <> 0 Then
- sFile = Microsoft.VisualBasic.Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
- ' MCI öffnen
- lResult = mciSendString("open " & sFile & _
- " type MPEGVideo alias " & sAlias, 0, 0, 0)
- If lResult = 0 Then
- ' MP3 abspielen
- If mciSendString("play " & sAlias & _
- " from 0", 0, 0, 0) = 0 Then
- bResult = True
- End If
- End If
- End If
- MP3_Play = bResult
- End Function
- #End Region
- #Region " Wiedergabe stoppen und MCI schließen "
- Private Sub MP3_Stop(ByVal sAlias As String)
- mciSendString("stop " & sAlias, 0, 0, 0)
- mciSendString("close " & sAlias, 0, 0, 0)
- End Sub
- #End Region
Code des Timers:
Mfg. TGS -
-
siehe auch: MCI-Player
Edit: echt? issas so mies? ist mir garnet aufgefallen. Ich fand halt gut, dass man keine zusätzliche Dll einbinden muß. -
-
Dieser Thread ist doch mal wieder ein schlechter Witz !?
Der Threadersteller hat sich doch offensichtlich kein bißchen Gedanken zum Thema gemacht, geschweige den irgendeine Suche bemüht.
Eigeninitiative ? Fehlanzeige !
Warum wird das hier nicht konsequent unterbunden (Thread inne Tonne, Benutzer verwarnen) ? *schiel zu EFD*
Ich habe mittlerweile keine Lust mehr, mich durch so eine Scheiße zu wühlen (SuFu nahezu unbrauchbar bzw. extrem anstrengend) und meide dieses Forum mehr und mehr. -
also für mich wars interessant, über Nachteile von mcisendstring zu hören. Die SuFu würde ich eh vorzugsweise auf die Tipps&Tricks eingeschränkt benutzen.
Was ist EFD? -
-
-
Falsch. Sonst hätte ich es nicht im Thema Mp3Player geschrieben.
-
ErfinderDesRades schrieb:
echt? issas so mies? -
-
Die SoundPlayer-Klasse kann keine anderen Dateitypen wiedergeben, z. B. .wma oder .mp3. Wenn Sie andere Dateitypen wiedergeben möchten, können Sie das Windows Media Player-Steuerelement verwenden. Weitere Informationen finden Sie unter Using the Windows Media Player Control in a .NET Framework Solution und Windows Media Player Object Model Reference for Visual Basic .NET and C# im Windows Media Player-SDK.
-
-
Tags
-
Ähnliche Themen
-
GirlOnFire - - Sonstige Problemstellungen
-
LittleAvani - - Sonstige Problemstellungen
-
Bugcoder - - Multimediasoftware
-
-
9 Benutzer haben hier geschrieben
- Artentus (6)
- Gonger96 (4)
- ThuCommix (3)
- thefiloe (3)
- Gast (3)
- ManuelSoftware (2)
- ErfinderDesRades (2)
- rotherford (1)
- Manawyrm (1)