Diskuze: pomoc k mé bc. práci. zpomalit všechna videa pomocí trackbaru

C# .NET .NET (C# a Visual Basic) pomoc k mé bc. práci. zpomalit všechna videa pomocí trackbaru American English version English version

Avatar
marek.schwarz:

Ahoj,
mám problém, když přepnu track bar na jedničku tak video zpomalí, ale když v listboxu přepnu video, tak další videa už běží v normální rychlosti, i když je trackbar na jedničce :( Když např. v průběhu videa přepnu trackbar z 1 na nulu a potom zase na 1, tak jede video opět pomalu, ale další už opět normálně.

Chci docílit toho, že když bude trackbar na jedničce tak se budou všechna videa z listboxů přehrávat pomalu a když bude na nule tak všechny normálně.

Můj zdroják trackbaru:

Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.scroll

    If TrackBar1.Value = 0 Then
        AxWindowsMediaPlayer1.settings.rate = 1
    End If


    If TrackBar1.Value = 1 Then
        AxWindowsMediaPlayer1.settings.rate = 0.5
    End If

End Sub

díky moc, nejsem z IT školy, tak pochopte prosím moji programovací neschopnost :)

Editováno 4.5.2015 4:19
 
Odpovědět 4.5.2015 4:17
Avatar
Odpovídá na marek.schwarz
Michal Haňáček:

Ahoj, z toho zdrojáku co jsi sem postnul toho moc nevyčteme. Možná by nebylo zlé sem hodit i ten zbytek ...

Ale jen tak od boku - zkus nastavit rychlost přehrávání Playeru hned po tom co "přepneš to video z ListBoxu" (event na změnu trackBaru samozřejmě nechej).

Nahoru Odpovědět 4.5.2015 8:11
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
rwn
Člen
Avatar
Odpovídá na marek.schwarz
rwn:

Podle toho jak to popisuješ máš pravděpodobně nastavenej track bar, aby při změně své hodnoty změnil rychlost videa. Ale při změně v listboxu se už nedíváš na hodnotu na tom tvém track baru. Měloby stačit dát, že při změně videa v listoboxu nastavíš aktuální hodnotu z track baru..

Nahoru Odpovědět  +1 4.5.2015 12:13
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
marek.schwarz:
Private Sub ListBox2_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ListBox2.SelectedIndexChanged, ListBox8.SelectedIndexChanged
    Dim lb As ListBox = DirectCast(sender, ListBox)

    If lb.Text = "abdomen, venter - břicho" Then
        AxWindowsMediaPlayer1.URL = "Video\bricho2.mp4"
    End If

    If lb.Text = "antebrachium - předloktí" Then
        AxWindowsMediaPlayer1.URL = "Video\předloktí.mp4"
    End If

zdroják pro přehrávání videa je tento :)

Ok, a jakej příkaz mám před to dát?

mám tam potom ještě trackbar s počtem přehrávání a ten funguje jak má a přitom je nastavenej úplně stejně

Private Sub TrackBar2_Scroll(sender As Object, e As EventArgs) Handles TrackBar2.Scroll
    If TrackBar2.Value = 0 Then
        AxWindowsMediaPlayer1.settings.playCount = 1
    End If

    If TrackBar2.Value = 1 Then
        AxWindowsMediaPlayer1.settings.playCount = 3
    End If

    If TrackBar2.Value = 2 Then
        AxWindowsMediaPlayer1.settings.playCount = 5
    End If
    If TrackBar2.Value = 3 Then
        AxWindowsMediaPlayer1.settings.playCount = 5000
    End If

End Sub

Takže předpokládám, že přijde něco sem, ale netuším co:

If lb.Text = "abdomen, venter - břicho" Then
    SEM???? :)
    AxWindowsMediaPlayer1.URL = "Video\bricho2.mp4"
End If

díky moc za každou radu :)

Editováno 4.5.2015 12:34
 
Nahoru Odpovědět 4.5.2015 12:33
Avatar
rwn
Člen
Avatar
Odpovídá na marek.schwarz
rwn:

Já jsem teda ve VB nikdy nedělal, ale měloby tam být metoda, která se podívá na hodnotu na track baru a vrátí nastavení podle té hodnoty:

If lb.Text = "abdomen, venter - břicho" Then
    AxWindowsMediaPlayer1.settings.playCount = mojeMetoda()

    AxWindowsMediaPlayer1.URL = "Video\bricho2.mp4"
End If
Public Function mojeMetoda()
If TrackBar2.Value = 0 Then
         return = 1
     End If

     If TrackBar2.Value = 1 Then
         return  = 3
     End If

     If TrackBar2.Value = 2 Then
         return  = 5
     End If
     If TrackBar2.Value = 3 Then
         return  = 5000
    Return "Infant"
End Function

Jak jsem říkal, ve VB jsem nikdy nedělal, takže ten kód není správný, ale princip je v něm snad vidět. :)
Jinak hádám, že VB má lepší možnosti na výběr z možností než dávat všude if.. C sharp má na to třeba switch a VB bude mít něco určitě taky ;)

Editováno 4.5.2015 14:59
Nahoru Odpovědět 4.5.2015 14:56
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
rwn
Člen
Avatar
Odpovídá na rwn
rwn:

*ten poslední Return se mě tam odněkud asi omylem zkopíroval :D

Nahoru Odpovědět 4.5.2015 15:14
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
marek.schwarz:
Public Function mojeMetoda()
    If TrackBar1.Value = 0 Then
        Return 1
    End If

    If TrackBar1.Value = 1 Then
        Return 0.5
    End If

    Return 1

End Function
If lb.Text = "abdomen, venter - břicho" Then
     AxWindowsMediaPlayer1.settings.rate = mojeMetoda()
     AxWindowsMediaPlayer1.URL = "Video\bricho2.mp4"
 End If


 If lb.Text = "antebrachium - předloktí" Then
     AxWindowsMediaPlayer1.settings.rate = mojeMetoda()
     AxWindowsMediaPlayer1.URL = "Video\předloktí.mp4"
 End If

 If lb.Text = "axilla - podpaží" Then
     AxWindowsMediaPlayer1.settings.rate = mojeMetoda()
     AxWindowsMediaPlayer1.URL = "Video\podpaží.mp4"
 End If

 If lb.Text = "brachium - paže" Then
     AxWindowsMediaPlayer1.settings.rate = mojeMetoda()
     AxWindowsMediaPlayer1.URL = "Video\paže.mp4"
 End If

Funguje zatím nejlíp, když je trackbar na 0, tak hraje normálně, když na 1, tak zpomaleně.

Problém nastane, když přepnu video ještě než se dokončí předchozí, trackbar může být kde chce, ale video se přehraje stejně v normální rychlosti.

Takže summary:

  • funguje správně, jen když přepnu video po dokončení předchozího, nebo když je stoplý, zkrátka jen, když je wmp v programu černej :) když přepínam z běžícího videa na jiný, tak jede vše normální rychlostí.
 
Nahoru Odpovědět 5.5.2015 3:01
Avatar
marek.schwarz:

tak jsem to vyřešil třetím řádkem AxWindowsMedi­aPlayer1.ctlcon­trols.stop

 
Nahoru Odpovědět 5.5.2015 3:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.