Ich verzweifle gleich.
Trotz option-angaben funktioniert es garnicht. Sowie ich irgendwelche Statusinformationen des Songs abfragen will, bekomme ich die besagte Fehlermeldung.
Hier mein aktueller Code:
Option Explicit
Option Strict On
Imports System
Imports System.Windows.Forms
Imports Microsoft.VisualBasic.Strings
Public Class SoundFile
Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal cmd As String,ByVal rsl As String,ByVal rsl_start _
As Int32,ByVal hwdcallback As Int32) As Int32
Private str_alias As String
Public ReadOnly Property Length As Long
Get
Dim sBuffer As String = Space(256)
mciSendString("set " & str_alias & " time format" & _
"milliseconds",sBuffer,256,0)
> mciSendString("status " & str_alias & " length",sBuffer,256,0)
Return(CLng(sBuffer.Trim()))
End Get
End Property
Public ReadOnly Property Position As Long
Get
Dim sBuffer As String
mciSendString("set " & str_alias & " time format" & _
"milliseconds",sBuffer,255,0)
> mciSendString("status " & str_alias & " position",sBuffer,255,0)
Return(CLng(sBuffer.Trim()))
End Get
End Property
Private Function randomNumber() As String
Dim firstPart,secondPart,lastPart As String
Dim r As New Random()
firstPart = Microsoft.VisualBasic.Conversion.Hex(r.Next( _
100000,999999)).Trim().ToLower()
Return(firstPart)
End Function
Public Sub New(ByVal AudioFile As String,Optional ByVal DefaultVolume As Long _
= 1000)
str_alias = "audiofile" & randomNumber() & "mp3neo"
Try
Dim N As String = Chr(34)
If mciSendString("open " & N & AudioFile & N & " alias " & _
str_alias,Nothing,0,0) = 0 Then
If mciSendString("setaudio " & str_alias & " volume to " & _
DefaultVolume,Nothing,0,0) = 0 Then
If mciSendString("set " & str_alias & " time format" & _
"milliseconds",Nothing,0,0) <> 0 Then
MessageBox.Show("Fehler bei der Initialisierung des" & _
"Songs","Fehler (Code" & _
"0x00000003)",MessageBoxButtons.Ok,MessageBoxIcon.Error)
mciSendString("close " & str_alias,Nothing,0,0)
End If
Else
MessageBox.Show("Fehler bei der Initialisierung des" & _
"Songs","Fehler (Code" & _
"0x00000002)",MessageBoxButtons.Ok,MessageBoxIcon.Error)
mciSendString("close " & str_alias,Nothing,0,0)
End If
Else
MessageBox.Show("Fehler bei der Initialisierung des Songs","Fehler" & _
"(Code 0x00000001)",MessageBoxButtons.Ok,MessageBoxIcon.Error)
End If
Catch
End Try
End Sub
Public Overloads Function AudioPlay() As Boolean
If mciSendString("play " & str_alias & " from 0",Nothing,0,0) = 0 Then
Return(True)
Else
Return(False)
End If
End Function
Public Overloads Function AudioPlay(ByVal FromPosition As Long) As Boolean
If FromPosition <= Me.Length - 10 And FromPosition >= 0 Then
If mciSendString("play " & str_alias & " from 0",Nothing,0,0) = 0 Then
Return(True)
Else
Return(False)
End If
End If
End Function
End ClassDie Besagten Stellen sind mit > markiert. Ich habe ein kleines Testprojekt dazugebastelt, was direkt auf diese Klasse zugreift:
(code im nachfolgenden Post)
Ich bitte um Rat. Hilfeee!
MFG
Griever |