QML Playlist move () останавливает воспроизведение, если перемещенный индекс меньше currentIndex - PullRequest
0 голосов
/ 15 апреля 2020

Я разрабатывал проигрыватель Musi c с использованием QML , и я реализовал Компонент списка воспроизведения для списка воспроизведения песен.

MediaPlayer {
        id: audioPlayer
        audioRole: Audio.MusicRole
        autoPlay: true
        property int durationProgress: position
        playlist: Playlist {
            id: audioPlaylist
            property int lastSongPlayed: currentIndex
            onLoaded: {
                console.log("Playlist loading successful")
            }
            onLoadFailed: {
                console.log("Playlist loading failed -> "+errorString)
            }
     }

Я хочу изменить список воспроизведения для Параметры «Далее», «Удалить», «Переместить» . Работает нормально, если индекс движущихся песен ниже текущего индекса плейлиста. Но когда операция выполняется с индексом ниже, чем currentIndex, что вызывает изменение индекса текущей воспроизводимой песни в списке воспроизведения, Player просто останавливает воспроизведение, делая currentIndex == - 1. Что совсем не ожидается пользователем. Ниже приведен код.

MenuItem {
     text: "Play Next"
     onTriggered: {
         var i= container.playlist.currentIndex
         container.playlist.moveItem(index,i+1)
     }
 }

Выше не может обрабатывать соглашения для индексов выше currentIndex. Итак, я обрабатываю изменения индексов в моем следующем коде

MenuItem {
     text: "Play Next"
     onTriggered: {
         var i= container.playlist.currentIndex
         if(index>i) {
            container.playlist.moveItem(index,i+1)
         }
         else if(index<i) {
             container.playlist.moveItem(index,i)
             container.playlist.currentIndex= i-1
         }
     }
 }

Расположение списка воспроизведения обрабатывается правильно с этим кодом, но это приводит к тому, что песня воспроизводится с начала (с 0,00). Я не хочу этого Есть ли другой путь. Эти коды предоставляются для операции Play Next, но я знаю, что у меня возникнут проблемы с операциями удаления и перемещения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...