Итак, в последнее время я использую замечательный медиаплеер mpv в качестве основного проигрывателя сжатых аудиофайлов (он отлично справляется с этой задачей в командной строке, если отключено видео).
Представьте, что у меня есть m3u-плейлист URL-адресов (из Интернета) для mp3-файлов общедоступной аудиокниги LibriVox, которую я слушаю (не все за один присест), и я воспроизводю этот плейлист из командной строки с помощью следующей команды:
mpv --no-video --save-position-on-quit playlist.m3u
В настоящее время, если у меня есть подключение к Интернету, он воспроизводится просто отлично. Однако, если соединение обрывается, он пропускает все файлы до конца плейлиста и останавливается, из-за чего я теряю место в аудиокниге, которую слушаю. Вместо этого я хочу, чтобы он ставил на паузу или останавливался, а не переходил к следующему треку, при этом помня, где я был до того, как мое соединение было потеряно. Как мне этого добиться, не загружая заранее mp3-файлы (представьте, что у моего устройства ограниченная память, и я не хочу использовать ее этими mp3-файлами, если могу)?
Хотя это уже не является актуальной проблемой, поскольку я перешел на устройство с большим объемом памяти и могу загружать данные заранее, мне все равно интересно узнать ответ.
Меня здесь больше всего волнует сохранение положения до потери соединения и его возобновление после его восстановления.
решение1
mpv описывает следующую опцию:
--loop-playlist=force
The force mode is like inf, but does not skip playlist entries
which have been marked as failing.
This means the player might waste CPU time trying to loop a file that doesn't exist.
But it might be useful for playing webradios under very bad network conditions.
Тогда как вариант: --save-position-on-quit
работает только, если выпокидатьприложение. В нем прямо указано:
This does not happen if playback of a file is stopped in any other way than quitting.
(что вы и описали)
Переключатели и флаги документированы наэта страница