Помогите с wmp.dll (Windows Media Player) для VB 6 - PullRequest
0 голосов
/ 10 декабря 2010

У меня серьезная проблема с моим приложением VB 6.В нем у меня есть ссылка на wmp.dll в форме, идея в том, что она воспроизводит медиа-видеофайлы, у меня есть ListView с именем LV1, в котором я показываю имена файлов в списке воспроизведения.Я хочу знать текущий индекс из текущего списка воспроизведения.

Этот саб отвечает за обнаружение изменений:

Private Sub Wmp1_CurrentItemChange(ByVal pdispMedia As Object)

Я могу получить общее количество в плейлист с этой строкой:

Val=Wmp1.currentPlaylist.Count

Как я могуполучить текущую дорожку (индекс) при воспроизведении, если я хочу согласовать это с моим ListView, чтобы выбрать ту же дорожку с тем же индексом в списке воспроизведения.

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 14 апреля 2011

Это ответ. Вы должны искать снова в цикле

Dim i As Integer

For i = 0 To WindowsMediaPlayer1.currentPlaylist.Count - 1
If WindowsMediaPlayer1.currentPlaylist.Item(i).isIdentical(WindowsMediaPlayer1.currentMedia) = True Then Exit For
Next

List1.Selected(i) = True
1 голос
/ 11 декабря 2010

Вы можете использовать setItemInfo на носителе перед добавлением к currentPlaylist, например:

Option Explicit

Private Sub Form_Load()
    Dim sFile       As String
    Dim oMedia      As IWMPMedia

    sFile = Dir("c:\temp\*.avi")
    Do While LenB(sFile) <> 0
        Set oMedia = Wmp1.newMedia("c:\temp\" & sFile)
        oMedia.setItemInfo "Index", Wmp1.currentPlaylist.Count
        Wmp1.currentPlaylist.appendItem oMedia
        sFile = Dir
    Loop
End Sub

Private Sub Wmp1_CurrentItemChange(ByVal pdispMedia As Object)
    Debug.Print Wmp1.currentPlaylist.Item(Wmp1.currentMedia.getItemInfo("Index")).Name
End Sub
...