| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivTipp 499: MP3 via API abspielen | | | Autor: D3luxee | Tipp anzeigenDatum: 18.04.09 00:42 |
| Ich arbeite gerade an einem ganz einfachen MediaPlayer der Musik abspielen kann in ein paar Textboxen gibt man Pfade an und mit Radiobuttons den dateityp! Bei Wavesounds gibts keine probleme bei MP3 allerdings schon!
Ich bin per Google auf euren Tipp gestoßen und habe alles abgearbeitet!
Jetzt meldet VB mir aber fehler bei Folgenden Codezeilen
sFile = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1) aus dem Gesamtcode
Public Function MP3_Play(ByVal sFile As String, _
ByVal sAlias As String) As Boolean
Dim bResult As Boolean
' Dateinamen in DOS 8.3 Format, da z.B. Sonderzeichen
' wie Leerzeichen Probleme machen
Dim sBuffer As String
Dim lResult As Long
sBuffer = Space$(255)
lResult = GetShortPathName(sFile, sBuffer, Len(sBuffer))
If lResult <> 0 Then
sFile = 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 Dort treten folgende fehler auf:
Das Typzeichen "$" entspricht nicht dem deklarierten Datentyp "Integer".
und
"Public Property Left() As Integer" hat keine Parameter, und der Rückgabetyp kann nicht indiziert werden.
Und dann noch dort wo ich die Dateien Abspielen will
If lied1 = "leer" Then
GoTo ml1
End If
MP3_Play(lied1), "MyAlias"
ml1:
If lied2 = "leer" Then
GoTo ml2
End If
MP3_Play(lied2), "MyAlias"
ml2:
If lied3 = "leer" Then
GoTo ml3
End If
MP3_Play(lied3), "MyAlias"
ml3:
If lied4 = "leer" Then
GoTo ml4
End If
MP3_Play(lied4), "MyAlias"
ml4: Fehler:
Für den Parameter "sAlias" von "Public Function MP3_Play(sFile As String, sAlias As String) As Boolean" wurde kein Argument angegeben.
und
"end of"-Anweisung erwartet.
Die Variable lied1 - lied4 werden oben mit dem inhalt der 4 textboxen gefüllt, hier der code
Dim lied1 As String = TextBox1.Text
Dim lied2 As String = TextBox2.Text
Dim lied3 As String = TextBox3.Text
Dim lied4 As String = TextBox4.Text Kann mir jemand erklären was ich falsch mache? Ich benutze VB Express 08!
Ich hoffe jemand von euch kann mir helfen.
Aber Danke im vorraus! | |
Re: MP3 via API abspielen | | | Autor: D3luxee | Datum: 18.04.09 14:55 |
| Danke für deine Antwort,
Ich hab das mit DirectX9 AudioPlayback versucht! Es gab weniger fehler, aber es gab fehler und deswegen bräuchte ich nochmal hilfe!
Ich habe wie im Tipp beschrieben eine Neue Klasse erstellt und dort den Code eingefügt!
Jetzt gibt es eine Warnung nähmlich:
Der in Imports "Microsoft.DirectX" angegebene Namespace oder Typ enthält keine öffentlichen Member oder kann nicht gefunden werden. Stellen Sie sicher, dass der Namespace oder der Typ definiert ist und mindestens einen öffentlichen Member enthält und dass der importierte Elementname keine weiteren Aliase enthält.
und zwei Fehler:
Der Typ "AudioVideoPlayback.Audio" ist nicht definiert.
und nochmal
Der Typ "AudioVideoPlayback.Audio" ist nicht definiert.
Und in der Windows Form gibts auch noch einen Fehler
Dim WithEvents Playback As New AudioPlayback Mit dem Fehlercode
"WithEvents" ist bei der Deklaration von lokalen Variablen ungültig. alle Fehler sind in der neuen Klasse, deswegen werde ich mal den Code davon posten!
Imports Microsoft.DirectX
Public Class AudioPlayback
' Musik ist zu Ende Event
Public Event AudioEnd(ByVal sender As Object, ByVal e As EventArgs)
' DirectX9 Audio
Public WithEvents m_Audio As AudioVideoPlayback.Audio = Nothing
' Variable : Läuft die Musik noch ?
Private m_AudioPlaying As Boolean = False
''' <summary>
''' Lädt die angegebene Audio-Datei
''' </summary>
''' <param name="Filename">Dateiname der Audio-Datei</param>
Public Sub Load(ByVal Filename As String)
m_Audio = New AudioVideoPlayback.Audio(Filename)
End Sub
''' <summary>
''' Spielt die Audio-Datei ab
''' </summary>
Public Sub Play()
Try
m_Audio.Play()
m_AudioPlaying = True
Catch
m_AudioPlaying = False
End Try
End Sub
''' <summary>
''' Abspielvorgang stoppen
''' </summary>
Public Sub [Stop]()
m_Audio.Stop()
m_AudioPlaying = False
End Sub
''' <summary>
''' Pause-Funktion für den Abspielvorgang
''' </summary>
Public Sub Pause()
m_Audio.Pause()
End Sub
' Gibt die Ressourcen frei
Private Sub Dispose()
m_Audio.Dispose()
End Sub
''' <summary>
''' Beendet die Wiedergabe und gibt die Ressourcen frei
''' </summary>
Public Sub Beenden()
[Stop]()
Dispose()
End Sub
''' <summary>
''' Legt die Lautstärke fest oder gibt diese zurück
''' </summary>
Public Property Volume() As Integer
Get
Return m_Audio.Volume
End Get
Set(ByVal value As Integer)
m_Audio.Volume = value
End Set
End Property
''' <summary>
''' Gibt zurück, ob aktuell ein Abspielvorgang läuft
''' </summary>
Public ReadOnly Property IsPlaying() As Boolean
Get
Return m_AudioPlaying
End Get
End Property
' Löst ein Event aus, wenn der Abspielvorgang beendet ist
Private Sub Ending(ByVal sender As Object, _
ByVal e As EventArgs) Handles m_Audio.Ending
m_AudioPlaying = False
' Event auslösen
RaiseEvent AudioEnd(sender, e)
End Sub
End Class
Beitrag wurde zuletzt am 18.04.09 um 15:07:05 editiert. | |
Re: MP3 via API abspielen | | | Autor: D3luxee | Datum: 18.04.09 16:59 |
| Ich habe das hinzugefügt, das hat aber keinen fehler behoben sondern noch einen zusätzlich erzeugt!
Das ist ein Code-Ausschnitt meiner anwendung
Public Class Form1
Dim WithEvents Playback As New AudioPlayback
Microsoft.DirectX.AudioVideoPlayback()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Dim lied1 As String = TextBox1.Text
Dim lied2 As String = TextBox2.Text
Dim lied3 As String = TextBox3.Text
Dim lied4 As String = TextBox4.Text
If RadioButton1.Checked = True Then
GoTo wav
End If
If RadioButton2.Checked = True Then
GoTo mp
End If
wav:
If lied1 = "leer" Then
GoTo l1
End If
Playback.Load(lied1) beiMicrosoft.DirectX.AudioVideoPlayback() gibt es den fehler:
Deklaration erwartet.
Hab ich irgendetwas an eine falsche stelle im code eingefügt? | |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|