Stream länger als 7 Sec. aufnehmen

  • Hi Com,

    ich arbeite momentan an einem Script, mit dem ich Internet Streams aufnehmen kann.
    Dazu hab ich diesen Thread benutzt und dann auf Internet Streams abgewandelt.

    Das Problem ist allerdings, egal wielang ich die Aufnahme laufen lasse, es werden trotzdem nur genau 7 Sekunden, bzw. 111 KB gespeichert..

    Wie kann ich erreichen das es länger bzw. größer geht?

    Benutze die bass.dll, basswma.dll, bass_aac.dll, bassext.dll

    [autoit]

    Func _Record($state)
    If $state = 1 Then
    $buffer = _BASS_EXT_MemoryBufferCreate()
    $channel_record = _BASS_StreamCreateURL($info[$csi][1],0,$BASS_STREAM_DECODE,$BASS_EXT_DownloadProc,$buffer[0])
    $csr = 1
    ElseIf $state = 0 Then
    $size = _BASS_EXT_MemoryBufferGetSize($buffer)
    $data = _BASS_EXT_MemoryBufferGetData($buffer,$size)

    [/autoit][autoit][/autoit][autoit]

    $hFile = FileOpen(@ScriptDir & "\Download.mp3", 18)
    FileWrite($hFile,$data)
    FileClose($hFile)

    _BASS_StreamFree($channel_record)
    _BASS_EXT_MemoryBufferDestroy($buffer)

    $csr = 0
    EndIf
    EndFunc

    [/autoit]
  • Servous, habe mit der Bass UDF noch nicht gearbeitet aber solltest du nicht eine Schleife haben die den Stream überhaupt aufrecht erhält?

    Ausschnitt von eukalyptus

    [autoit]


    $aMP3Buffer = _BASS_EXT_MemoryBufferCreate()

    [/autoit][autoit][/autoit][autoit]

    $hStream = _BASS_StreamCreateURL("http://dc370.4shared.com/img/777213322/c38560ec/dlink__2Fdownload_2F2v7poYoy_3Ftsid_3D20110910-35650-7cd66ec0/preview.mp3", _
    0, $BASS_STREAM_DECODE, $BASS_EXT_DownloadProc, $aMP3Buffer[0]) ;use callback function from bassext.dll

    [/autoit][autoit][/autoit][autoit]

    $iLength = _BASS_ChannelGetLength($hStream, $BASS_POS_BYTE)
    $iBytes = 0

    [/autoit][autoit][/autoit][autoit]

    While $iBytes < $iLength
    $iBytes += _BASS_ChannelGetData($hStream, $pBuffer, $iBuffer)
    ToolTip(Round($iBytes * 100 / $iLength, 1) & "%" & @CRLF & "MP3 Daten in Buffer: " & Round(_BASS_EXT_MemoryBufferGetSize($aMP3Buffer) / 1024, 1) & "KB")
    Sleep(500)
    WEnd

    [/autoit]

    Gruß Marvin

  • Naja hab ich auch erst gedacht, aber aufrecht erhalten wird er ja, beim testen per Sleep(), ansonsten is das Program ja größer und hat ebenfalls ne Schleife die es aufrecht erhält,daher kann es eigentlich nicht daran liegen. Und das in der Schleife ist ja eigentlich nur zum anzeigen wie weit es ist, aber das geht ja hier nicht da ein Internet Stream ja "unendlich" ist..

  • Mh naja also ich würde mal das Script von eukalyptus so umbauen dass es deinen Stream Recorded und halt die While anpassen auf Ein Hotkey set oder so und dann mal schauen ob es geht ;)
    andernfalls musst mal warten bis einer der Bass UDF Leute online sind ;)

    Gruß Marvin