Playlist mit einer Textbox durchsuchen und den Titel abspielen und einen "Wiederholen" Button einfügen und eine Schaltfläche das man die Titel ohne Pause abspielen kann

  • VB.NET

Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von Goldwing Studios.

    Playlist mit einer Textbox durchsuchen und den Titel abspielen und einen "Wiederholen" Button einfügen und eine Schaltfläche das man die Titel ohne Pause abspielen kann

    Hallo ihr,

    wie kann ich in der Playlist einen ganz bestimmten Titel suchen und dann zu einer ListBox hinzufügen und den hinzugefügen Titel aus der Listbox abspielen? Ich vermute es ist nur eine bestimmte Codezeile die ich vergessen habe, hier mein Code:

    VB.NET-Quellcode

    1. ​If e.KeyCode = Keys.Enter Then
    2. If TextBox1.Text = TextBox1.Text Then
    3. Namen.Text = TextBox1.Text
    4. Player.Ctlcontrols.playItem(Player.currentPlaylist.Item(ListBox1.Items.IndexOf(ListBox1.SelectedItem)))
    5. End If
    6. End If


    Mfg
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    Du eröffnest hier regelmäßig neue Threads und fragst nach irgendwelchen Befehlen, von denen du vage vermutest, dass sie existieren. Wie wär's denn, wenn du stattdessen mal programmieren lernst?

    Audiowiedergabe kann man z.B. mit CSCore realisieren.
    Ich brauche immer wieder Hilfe dabei. Um es zu verstehen, eröffne ich jedes mal neue Threads da ich richtig viel Hilfe brauche. Ich kann ein bisschen programmieren und weil ich ja nicht so gut bin, brauche ich allerdings zu den Sachen immer wieder sehr viel Hilfe.
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    Wie wäre es mal wenn du uns überhaupt mitteilst, was du vorhast, womit du momentan arbeitest und so weiter.
    Arbeitest du mit dem WMP ? CScore?
    was willst du machen?

    Dein Problem ist wie ich verstanden habe, dass du etwas in der wiedergabeliste suchst, es in eine listview eintragen und von da aus abspielen willst?
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:

    VB.NET-Quellcode

    1. If e.KeyCode = Keys.Enter Then
    2. If TextBox1.Text == TextBox1.Text Then 'so hier fehlt einmal das zweite "=" (hab ich schonmal reingepackt), außerdem ist es nicht ratsam einem wert mit dem selbigen zu vergleichen (vllt hast du ja einen Tippfehler z.B. TextBox2?)
    3. Namen.Text = TextBox1.Text 'Zeig uns bitte auch mal dein "Namen"-Element (kann mir da nichts drunter vorstellen)
    4. Player.Ctlcontrols.playItem(Player.currentPlaylist.Item(ListBox1.Items.IndexOf(ListBox1.SelectedItem))) 'Wäre natürlich auch gut, wenn du uns deine Player-, ListBox1- und sonstigen Elemente zeigst.
    5. End If
    6. End If


    Wie @enba versucht dir zu erklären, ist es echt schwer mittels Ferndiagnose (ich hasse dieses Wort :D) dein Problem zu ermitteln.

    Ein weißer Mann sagte mal sinnbildlich: "Quellcode von kleinen Projekten braucht man nicht geheimzuhalten, den gibt es 10000x im Internet zum Runterladen".

    Also, nicht scheu sein sondern Kot zeigen!
    Was enba versucht zu erklären, ist, dass eigenständige Recherche ein wesentlicher Bestandteil der Programmierung ist. Wenn du nach einem bestimmten Befehl suchst, wie wär's dann, wenn du in der Dokumentation der entsprechenden Komponente nachschlägst?

    Ob du es glaubst oder nicht, selbst die besten Coder hier im Forum kennen nicht alle Befehle auswendig (wäre ja auch unmöglich) - sie wissen aber, wo sie als erstes nach Hilfestellungen suchen müssen.

    Der nächste Punkt ist, dass du deine Fragen anständig und für dritte verständlich formulieren musst, damit man dir helfen kann. Sowas geht aber nur, wenn man selbst versteht, was genau man da benutzt, und das scheint bei dir nicht der Fall zu sein.

    Die meisten kompetenten Leute hier im Board werden dir bei deinen Problemen nicht helfen, solange du diese Voraussetzungen nicht erfüllst.

    @Goldwing Studios

    VB.NET-Quellcode

    1. ​If TextBox1.Text == TextBox1.Text Then 'so hier fehlt einmal das zweite "="
    Das ist Blödsinn, in VB.NET werden Werte mit einem einfachen Gleichheitszeichen verglichen UND zugewiesen - im gegensatz zu den meisten C-Dialekten.
    @Goldwing Studios, Ich zeige dir bzw. euch meinen Quellcode den ich bisher habe:

    VB.NET-Quellcode

    1. ​Imports WMPLib
    2. Imports System.IO
    3. Public Class Form1
    4. Dim playlist As IWMPPlaylist = Nothing
    5. Dim unsaved As String = My.Computer.FileSystem.SpecialDirectories.Temp & "\" & "Unsaved.m3u"
    6. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. If File.Exists(My.Settings.LetztePlaylist) Then
    8. playlist = Player.newPlaylist(Path.GetFileNameWithoutExtension(My.Settings.LetztePlaylist), My.Settings.LetztePlaylist)
    9. Player.currentPlaylist = playlist
    10. For i = 0 To Player.currentPlaylist.count - 1
    11. ListBox1.Items.Add(Player.currentPlaylist.Item(i).name)
    12. Next
    13. End If
    14. End Sub
    15. Private Sub player_CurrentItemChange(ByVal sender As Object, ByVal e As AxWMPLib._WMPOCXEvents_CurrentItemChangeEvent)
    16. ListBox1.SelectedItem = Player.Ctlcontrols.currentItem.name
    17. End Sub
    18. Private Sub ListBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
    19. If ListBox1.SelectedIndex <> -1 Then
    20. Player.Ctlcontrols.playItem(Player.currentPlaylist.Item(ListBox1.Items.IndexOf(ListBox1.SelectedItem)))
    21. End If
    22. End Sub
    23. Private Sub ListBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
    24. If e.KeyCode = 13 Then
    25. If ListBox1.SelectedIndex <> -1 Then
    26. Player.Ctlcontrols.playItem(Player.currentPlaylist.Item(ListBox1.Items.IndexOf(ListBox1.SelectedItem)))
    27. End If
    28. End If
    29. End Sub
    30. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles AddFile.Click
    31. ofd.RestoreDirectory = True
    32. ofd.Filter = "Music Files|*.mp3;*.wav;*.ogg|Playlist File|*.m3u"
    33. If ofd.FilterIndex = 2 Then
    34. ofd.Multiselect = False
    35. Else
    36. ofd.Multiselect = True
    37. End If
    38. ofd.Title = "Open Files"
    39. If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
    40. ListBox1.Items.Clear()
    41. Using sw As New StreamWriter(unsaved, False)
    42. For Each song As String In ofd.FileNames
    43. sw.WriteLine(song)
    44. Next
    45. End Using
    46. playlist = Player.newPlaylist("Unsaved Playlist", unsaved)
    47. Player.currentPlaylist = playlist
    48. For i = 0 To Player.currentPlaylist.count - 1
    49. ListBox1.Items.Add(Player.currentPlaylist.Item(i).name)
    50. Next
    51. ListBox1.SelectedItem = Player.Ctlcontrols.currentItem.name
    52. My.Settings.LetztePlaylist = unsaved
    53. End If
    54. End Sub
    55. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles RemoveFile.Click
    56. ListBox1.Items.Remove(ListBox1.SelectedItem)
    57. End Sub
    58. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles PlayFile.Click
    59. Player.Ctlcontrols.play()
    60. End Sub
    61. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles StopFile.Click
    62. Player.Ctlcontrols.stop()
    63. End Sub
    64. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles PauseFile.Click
    65. Player.Ctlcontrols.pause()
    66. End Sub
    67. Private Sub Button10_Click(sender As Object, e As EventArgs) Handles CloseForm.Click
    68. Application.Exit()
    69. End Sub
    70. Private Sub Button11_Click(sender As Object, e As EventArgs) Handles MinimizeForm.Click
    71. Me.WindowState = FormWindowState.Minimized
    72. End Sub
    73. End Class
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de

    enba schrieb:

    @Goldwing Studios
    VB.NET-Quellcode

    ​If TextBox1.Text == TextBox1.Text Then 'so hier fehlt einmal das zweite "="

    Das ist Blödsinn, in VB.NET werden Werte mit einem einfachen Gleichheitszeichen verglichen UND zugewiesen - im gegensatz zu den meisten C-Dialekten.


    *Highfive anbiet*
    Toll, lesbarkeit óle oder besser ade.

    machst halt einfach die zuweisung extra, das macht den Bock nicht fett. Wäre beides falsch ob mit "=" oder "==", "==" minimiert allerdings die Fehlermöglichkeit(in diesem Fall).

    Außerdem ist es nicht Blödsinn einem Anfänger einen Tipp zu geben.

    Goldwing Studios schrieb:

    Außerdem ist es nicht Blödsinn
    Doch doch. VB.NET kennt kein doppeltes Gleichzeichen und wertet es als Syntaxfehler.

    VB.NET-Quellcode

    1. ​Sub Main()
    2. Dim X As Boolean = False
    3. Dim Y As Boolean = True
    4. If X == Y Then
    5. Console.Write("kannste lange drauf warten")
    6. End If
    7. End Sub

    Probier's aus, es geht nicht.
    Ich hoffe, dass ich die Frage richtig verstanden habe.
    Mein Vorschlag:

    VB.NET-Quellcode

    1. For songs = 0 To Player.currentPlaylist.count - 1 ' durchsuche Songs in playlist
    2. If Player.currentPlaylist.Item(songs).name.Contains(TextBox1.Text) Then 'prüfen ob Eingabe aus TextBox in playlist vorhanden ist
    3. ListBox2.Items.Add(Player.currentPlaylist.Item(songs).name) ' wenn ja der listbox hinzufügen
    4. End If
    5. Next


    Zum Abspielen des Liedes:

    VB.NET-Quellcode

    1. For songs = 0 To Player.currentPlaylist.count - 1
    2. If Player.currentPlaylist.Item(songs).name = ListBox2.Text Then
    3. Player.Ctlcontrols.playItem(Player.currentPlaylist.Item(songs))
    4. End If
    5. Next

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „interlog“ ()

    C# != VB
    in vb wird so Verglichen

    VB.NET-Quellcode

    1. sub test()
    2. dim a as integer = 1
    3. dim b as integer = 1
    4. if a = b then messagebox.show("sind gleich")


    in C# Wird so verglichen

    C#-Quellcode

    1. int a = 0
    2. int b = 0
    3. if(a==b){
    4. 'irgendwas
    5. }
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:
    Vergleiche laufen in VB.NET genrell etwas anders ab, denn dort prüft der Operator ​= nur auf den Wert, nicht aber auf die Referenz. Das wäre dort ​Is. Hingegen prüft ​== in C# auf beides. ^^

    @interlog Willkommen im Forum. :) Warum rufst Du bei ​name nochmal explizit ​ToString auf? Das sollte ja schon ein String sein, oder? ;)

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    wie ja zu erkennen ist bin ich kein vb ass, aber ich hab hier mal das hier:

    VB.NET-Quellcode

    1. Dim deine_eingabe_in_einer_textbox As String = TextBox55.Text 'das ist der name des lieds welches du suchen möchtest (ich weiß nicht ob das so korrekt ist(name der textbox musst du halt noch anpasen))
    2. For i As Integer = 0 To (playlist.count - 1)
    3. IF playlist.Item(i).name = deine_eingabe_in_einer_textbox
    4. player.Ctlcontrols.playItem(playlist.Item(i))
    5. Next i


    wie gesagt ich bin kein ass, aber vielleicht bringt es dich weiter
    Endlich habe ich mal richtige Hilfe von euch bekommen. Danke an die die mir geholfen haben. Ich habe nochmals eine Frage (deshalb habe ich den Titel hier von, auch ein bisschen editiert): wie heißt die Funktion um Lieder wiederholen zu lassen und dabei aber dann nur die ausgewählten Titel?
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    Ich kann ja nur immer eins aus der Playlist (ListBox) auswählen und dann wenn das Lied fertig gespielt hat, kommt das nächste - das funktioniert ja auch wunderbar - ich möchte mit "STRG" Titel gerne auswählen und wenn ich Titel die man ausgewählt hat, das es auch abspielt. Ich hoffe man kann nachvollziehen was ich jetzt machen möchte aber dennoch fehlt mir dazu der Code.
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de