Video Loop solange Text (TTS) Vorgelesen wird.

  • VB.NET

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

    Video Loop solange Text (TTS) Vorgelesen wird.

    Hi, bin ziehmlich neu hier und auch blutiger Anfänger ;)

    Was ich habe : Ich habe eine App erstellt die aus einer Textdatei "vorliest" und ein Video abspielt. Das funzt soweit super.

    Was ich gern hätte : Ich hätte gern das die Video Datei solange geloopt wird wie vorgelesen wird.

    Ich gehe davon aus das das mit einer Loop Until oder sowas funz. Ich habe mir mehrere Anleitungen zu Loop und Do While angeschaut,
    leider kann ich das nicht umsetzen auf meine Video Geschichte.

    Hätte da jemand einen Ansatz für mich ?

    Vielen Dank...

    KroKoFox

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Dazu wäre erstmal gut zu wissen, wie du die Daten ausliest, wie das Video abgespielt wird, usw.
    Am Besten eignet sich dafür ein kleiner Code-Auszug mit den relevanten Stellen.

    So grob: Du liest ja vermutlich das File über irgendeinen Reader oder so aus. Wenn der am Ende ist, sollte sich auch deine Video-Loop zu Ende sein.

    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Hi, ja code ist total schlecht aber naja... Bitte nicht schimpfen, bin totaler Anfänger ;)
    Ist auch die Frage ob das im LOOP sinnvoll ist da ein loop immer sehr abgehackt ist. Möglicher Weise
    reicht auch ein längeres Video welches einfach stoppt bei Ende des TTS's ?! :D

    Danke!

    Spoiler anzeigen


    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. Call CenterToScreen()
    4. Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
    5. Me.WindowState = FormWindowState.Maximized
    6. Timer1.Interval = 4000
    7. Timer1.Enabled = True
    8. Timer1.Start()
    9. Timer2.Interval = 1000
    10. Timer2.Enabled = True
    11. Timer2.Start()
    12. AxWindowsMediaPlayer1.URL = "video.mp4"
    13. End Sub
    14. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    15. Timer1.Stop()
    16. Me.Close()
    17. End Sub
    18. Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
    19. Timer2.Stop()
    20. Dim FileNum As Integer = FreeFile()
    21. Dim TempL As String
    22. Dim SAPI
    23. FileOpen(FileNum, "text.txt", OpenMode.Input)
    24. TempL = LineInput(FileNum)
    25. FileClose(FileNum)
    26. SAPI = CreateObject("SAPI.SpVoice")
    27. SAPI.Speak(TempL)
    28. ' My.Computer.Audio.Play("sound.wav")
    29. End Sub
    30. End Class



    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „KroKoFox“ ()

    KroKoFox schrieb:

    Hi, ja code ist total schlecht aber naja... Bitte nicht schimpfen, bin totaler Anfänger

    Auch Anfänger können guten Code schreiben :D

    Bitte setzen Code-Tags ein, damit man das ganze lesen kann und evtl. noch einen Spoiler darum.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. ' ungefähr so


    Blöde Frage, setzt du das Interval grad selbst auf 4000 und 1000, weil das Video bzw. die Speak-Time so lang ist?
    Oder wie genau soll das passieren?

    Beschreibe bitte nochmal konkret den geplanten Ablauf. :)
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Alles klar! :)

    - App startet
    - Video Faded ein (1 sec)
    - erst dann soll das TTS starten
    - solange tts spricht soll das Video laufen.
    - dann wieder 1 sec ausfaden
    - app beenden

    Das geht soweit jetzt auch aber wenn das TTS mehr spricht ist das Video
    natürlich zu kurz. Deswegen dachte ich an einen "Loop" oder von Haus aus
    ein längeres Video welches stopt bei TSS stop.

    Hoffe das war so verständlich. :D

    Grüsse
    Dann überarbeite bitte Post#3 mit den entsprechenden Tags ;)

    Ok, zunächst eine Frage bezüglich den Labels. Gehst es um VB.NET oder Visual Basic?

    Bezüglich dem Warten, oder Anzeigen, wann die Ausgabe fertig ist, gibt dir die SpVoice ein Event:
    siehe hier.

    Gib aber erstmal Auskunft über die Labels und was du genau verwendest, denn sowas wie Call oder CreateObject ist in VB.NET (wie du auch gelabelt hast) unnötig und alter Code-Style von VB6.


    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Aijai :D

    also, als ich das Projekt gestartet habe habe ich "Windows-Forms-App (.NET Framework)" ausgewählt.
    Deshalb gehe ich davon aus das .NET ist ?! Sorry...

    Wie gesagt, total Anfänger ;)

    Diesen Link von dir habe ich schon mehrfach angeschaut, bin aber leider wenig schlau daraus geworden.

    LG
    Ok :)
    Also wenn du .NET verwendest, würde ich auch eine neuere Speech-Lib verwenden.
    Da du VB.NET verwendest, aber das Beispiel in C# geschrieben ist, empfehle ich dir converter.telerik.com.

    Da du aber ein völliger Anfänger bist, würde ich zunächst vorschlagen, dass du dich mit Grundbegriffen von VB.NET auseinandersetzt, dir anschaust, wie Events funktionieren und was man damit alles machen kann.
    Das Thema Sprachausgabe ist dann doch etwas für Fortgeschrittene, die sich etwas in der Materie auskennen.
    Wenn du jetzt versucht mit der Sprachausgabe voranzukommen, wird das nur unsauber, buggy und im Endeffekt Müll.
    Ich kann dir nur ans Herz legen dich ein wenig in das Thema einzuarbeiten und wenn die ersten kleineren Programme laufen und du auch verstehst was da passiert, kannst du dich nochmal an dein gewünschtes Projekt setzen :)


    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Das ist natürlich nicht das was ich hören wollte aber gut. Ich denke du hast recht. Leider wollte ich garkein "Programmierer" werden und nur eine
    "MiniAPP" haben :D Ich schau mir das dann mal in Ruhe an. Schade eigentlich, das das alles so kompliziert ist :) Aber es ist mit allem so,
    was man nicht "richtig" kann wird dann halt doch Mist.

    Vielen Dank trotzdem für deine Mühe.

    LG KroKoFox
    @KroKoFox Ich hab jetzt nicht die Erfahrung mit Sprech-Programmen, aber ich erwarte einfach mal, dass da ein Event kommt, dass die Geschichte vorbei ist.
    In diesem Event kannst Du dann das Video anhalten.
    Im Link von @Acr0most wäre das das SpeakCompleted-Event.
    Feddich.
    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!