vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Mp3 Länge auslesen, Es wurde versucht, im geschützten Speicher zu lesen oder zu 
Autor: Hannibal
Datum: 10.11.10 20:34

Hallo,

habe ein Problem mit dem auslesen der Länge von Mp3 Dateien. Wenn ich nur eine einzelne Datei auslesen funktioniert alles bestens aber sobald ich Datei für Datei von einem Verzeichnis auslese hängt er nach einer bestimmten Zeit auf.

Habe den Fehler jetzt mal versucht abzufangen und bekomme folgende Meldung
"Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."

Hab die Vermutung das der Speicher nach auslesen der Datei nicht korrekt wieder freigegeben wird.

Hier mal der entscheidende Code, den Rest kann ich auch gerne nachliefern.

Imports System
Imports System.Collections.Generic
Imports System.Text
 
Public Class Form1
    Private Declare Function mciSendString Lib "winmm.dll" Alias _
      "mciSendStringA" _
    (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
    ByVal uReturnLength As Integer, _
    ByVal hwndCallback As Integer) As Integer
 
 
    Private Declare Function GetShortPathName Lib "kernel32" Alias _
      "GetShortPathNameA" _
    (ByVal lpszLongPath As String, ByVal lpszShortPath As String, _
    ByVal cchBuffer As Integer) As Integer
 
 
    Private Function GetMP3Length(ByVal strFileName As String) As Double
 
        Dim strBuffer As String
        Dim lRet As Long
        Dim sReturn As String
        Try
 
 
            ' Da die mciSendString Funktion mit langen Dateinamen
            ' nicht korrekt arbeitet, muss zuvor der kurze
            ' 8.3 Dateiname der MP3-Datei ermittelt werden.
            strBuffer = Space(255)
            lRet = GetShortPathName(strFileName, strBuffer, Len(strBuffer))
 
            If lRet <> 0 Then
                strFileName = Microsoft.VisualBasic.Left(strBuffer, InStr( _
                  strBuffer, vbNullChar) - 1)
            End If
 
            ' MP3-Datei öffnen
            mciSendString("open " & strFileName & _
              " type MPEGVideo alias mp3audio", CStr(0), 0, 0)
 
            ' Länge der Datei in Millisekunden auslesen
            sReturn = Space$(256)
            lRet = mciSendString("status mp3audio length", _
              sReturn, Len(sReturn), 0&)
 
            ' MP3-Datei schliessen
            mciSendString("close mp3audio", CStr(0), 0, 0)
 
            GetMP3Length = Val(sReturn)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Function
 
    .
    .
    .
Nach geschätzten 2000 Dateien tritt der Fehler auf.

Gruß
Hannibal

_____________________________________________________
Programmieren ist heute ein Wettrennen zwischen Programmierern, die versuchen bessere und idiotensicherere Programme zu entwickeln und dem Universum, dass versucht bessere Idioten zu entwickeln

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Mp3 Länge auslesen, Es wurde versucht, im geschützten Speich...4.132Hannibal10.11.10 20:34
Re: Mp3 Länge auslesen, Es wurde versucht, im geschützten Sp...3.104Manfred X10.11.10 21:48
Re: Mp3 Länge auslesen, Es wurde versucht, im geschützten Sp...3.029Hannibal14.11.10 18:53
Re: Mp3 Länge auslesen, Es wurde versucht, im geschützten Sp...3.011Hannibal17.11.10 18:32
Eine Alternative mit dem MS APICodePack4.317Snoopy17.11.10 22:45
Re: Eine Alternative mit dem MS APICodePack3.090Hannibal18.11.10 17:10
Re: Mp3 Länge auslesen, Es wurde versucht, im geschützten Sp...3.014Hannibal18.11.10 19:20

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 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