bass.dll Aufnahme mit Button stoppen

  • VB.NET

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    bass.dll Aufnahme mit Button stoppen

    Hallo,

    Ich arbeite an einem kleinem Webradio, dem ich eine Aufnahmefunktion hinzugefügt
    habe, allerdings endet die Aufnahme immer genau bei 7 Sekunden. Ich habe auch im Internet
    nach Lösungsansätzen gesucht aber nur folgenden Snippet gefunden:


    Spoiler anzeigen
    Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_NET_BUFFER, 300)
    Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_BUFFER, 300)



    Meine Frage lautet wie ich dieses Snippet verwenden kann um die Aufnahmelänge zu varrieren,
    sprich so lange aufzunehmen bis auf den Stop Button gedrückt wird.

    ___________________________________________________________________
    8-) LG faxe1008 8-)

    8-) faxe1008 8-)
    Willkommen im Forum. :thumbup:
    Da hast Du ja nicht gerade den besten Einstand im Forum. :S
    Von irgend woher Code kopiert, keine Zeile von verstanden, und nun soll die Fremd-DLL noch funktionieren.
    Ohne dass ich jetzt die Tiefen der Bass.dll / Bass.Net.dll auslote (ich hoffe, Du hast Dein Programm auf x86 umgestellt), würde ich sagen, dass Du zunächst mal im Forum hättest suchen können.
    Da finde ich sofort dies Bass.Dll Record Tutorial.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo,

    Ich habe dieses Tutorial verwendet um die Aufnahmefunktion einzubauen (Und ja Ich habe dieses Tutorial gelesen und größtenteils verstanden nur eben diese Pasage nicht:

    Spoiler anzeigen
    Zur vollständigkeit halber aber hier noch ein paar Tipps wie ihr die Aufnahme des Streams verbessern könnt:

    Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_NET_BUFFER, 300)
    Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_BUFFER, 300)

    Mit diesen beiden Eigenschaften könnt ihr festlegen, in welchem Abstand
    die Callback Funktion aufgerufe werden soll. Die Zahl gibt den Abstand
    der AUfrufe in Millisekunden an. Es kann ein bisschen vergleichen werden
    mit dem Intervall von einem Timer. Wenn ihr eine genau Trennung des
    Stream haben wollt muss der Wert kleiner werden ansonsten liegt er so
    bei ca 7000. Spielt ein wenig damit rum. Der Wert sollte allerdins nicht
    zu niedrig werden, da sonst der Stream nicht mehr richtig wiedergeben /
    aufgezeichnet werden kann.


    Ich habe gemerkt, dass der Integer-Wert als zweites Argument der Methode BASS_SetConfig dient um die Millisekundenzahl anzugeben, allerdings verstehe Ich nicht wie Ich diesen Wert einstellen muss um eine unbestimmte/variable Länge aufzeichnen zu können und diese jederzeit stoppen zu können.

    _____________________________________________
    8-) LG faxe1008 8-)

    8-) faxe1008 8-)

    faxe1008 schrieb:

    Millisekundenzahl
    Was hast Du für eine Kilogrammzahl?
    Was hast Du für eine Meterzahl? :D :D :D
    ---
    Was haben diese beiden Befehle mit der Aufnahme zu tun?
    Meines Erachtens zunächst nix.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Gibt es die überhaupt?
    Start startet endlos, Stop beendet endlos, unabhängig, wie die Methoden nun konkret heißen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Mit welchen Argumenten muss ich die Bass.BASS_RecordStart() Methode füllen damit sie kompatibel mit dem bass.dll record Tutorial funktioniert?

    Die Aufnahme lässt sich dann doch mit Bass.BASS_Stop() stoppen, oder mit einer anderen Methode? Und wenn ja welche?

    ____________________________________________________
    8-) LG faxe1008 8-)

    8-) faxe1008 8-)

    RodFromGermany schrieb:

    Da finde ich sofort dies Bass.Dll Record Tutorial.
    Ergreif doch in der Zwischenzeit bitte mal die Initiative. :thumbsup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe dieses Tutorial verwendet um die Aufnahmefunktion einzubauen
    ...
    Jedenfalls in diesem Tutorial wird nichts davon erwähnt, wie man die
    Aufnahme so startet, dass sie so lange fortgesetzt wird bis sie gestoppt
    wird. Mit dem Code aus dem Toturial wird nur 7 Sekunden lang aufgenommen.

    Wie funktioniert es?

    _________________________________________________________________
    8-) LG faxe1008 8-)

    8-) faxe1008 8-)
    Frag mal Frau Google nach bass.dll aufnehmen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe jedes Thema das Ich im Internet dazu fand und
    halbwegs nützlich war durchgekaut ich kam aber nie zum gewünschten Ergebnis.

    Könnte mir irgendjemand sagen was ich falsch mache und wie ich es ändern muss??

    Hier ist mein bisheriger Code:

    Spoiler anzeigen


    Quellcode

    1. Imports Un4seen.Bass
    2. Imports System.IO
    3. Public Class Form3
    4. Public stream As Integer
    5. Public fs As System.IO.FileStream = Nothing
    6. Public myDownloadProc As DOWNLOADPROC
    7. Public data() As Byte
    8. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    9. Try
    10. If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    11. Dim url As String = Form1.MeinPlayer.URL
    12. Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_CPSPEAKERS, IntPtr.Zero, Nothing)
    13. myDownloadProc = New DOWNLOADPROC(AddressOf MyDownload)
    14. stream = Bass.BASS_StreamCreateURL(url, 0, BASSFlag.BASS_STREAM_AUTOFREE, myDownloadProc, 0)
    15. ' Bass.BASS_ChannelPlay(stream, True)
    16. End If
    17. Catch ex As Exception
    18. End Try
    19. End Sub
    20. Private Sub MyDownload(ByVal buffer As IntPtr, ByVal length As Integer, ByVal user As IntPtr)
    21. Try
    22. If fs Is Nothing Then
    23. ' Datei erzeugen
    24. fs = File.OpenWrite(SaveFileDialog1.FileName)
    25. End If
    26. If buffer = IntPtr.Zero Then
    27. ' Download fertig
    28. fs.Flush()
    29. fs.Close()
    30. Else
    31. ' Größe des Buffers anpassen
    32. If data Is Nothing OrElse data.Length < length Then
    33. data = New Byte(length) {}
    34. End If
    35. ' Speicher in Buffer kopieren
    36. System.Runtime.InteropServices.Marshal.Copy(buffer, data, 0, length)
    37. ' In Datei schreiben
    38. fs.Write(data, 0, length)
    39. End If
    40. Catch ex As Exception
    41. End Try
    42. End Sub
    43. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    44. Try
    45. Bass.BASS_Stop()
    46. Catch ex As Exception
    47. End Try
    48. End Sub
    49. End Class



    ______________________________________
    8-) LG faxe1008 8-)

    8-) faxe1008 8-)
    Hast Du Deine Bass.dll registriert?

    VB.NET-Quellcode

    1. BassNet.Registration(Deine_MAIL-Adresse, FreischaltCode)
    Für privat ist das kostenlos und geht ganz fix.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Keine Ahnung. Ich hab meinen verwendet, der ist praktisch identisch, nur dass ich keinen FileSaveDialog drin habe, und da ist mir das mit der Registrierung aufgefallen.
    HAst Du Register und Init in der richtigen (in dieser) Reihenfolge?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das lief einfach, und nach 30 Sekunden hab ich es unterbrochen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    muss ich mal heute abend sehen, hier hab ich den Code nicht bei.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielleicht gibts Fehler beim Download, nimm mal diese ganzen Exceptionhandler raus.
    rausgenommen -> keine Fehlermeldung trotzdem nur 7 Sekunden
    Was passt da nicht??

    ______________________________________________________
    8-) LG faxe1008 8-)

    8-) faxe1008 8-)