Помогите разобраться с DF Player

Gridzilla
Offline
Зарегистрирован: 25.10.2019

Возникла необходимость проиграть рандомно треки с определенной папки на SD карточке. Папок, допустим, три: 01, 02 и 03. Надо проиграть только со второй папки, не затрагивая остальные. 

#include <DFPlayer_Mini_Mp3.h>

void setup()  {
     Serial.begin(9600);//
     mp3_set_serial (Serial);
     delay (100);
     mp3_set_volume (10);
     delay (100);
}

void loop()  

{
mp3_play_file_in_folder(2, random (30)); // папки 02 в ней 30 файлов 0001-0030
}

Или эта библиотека нифига не позволит сделать подобное? Пните в нужную сторону, плз.

sadman41
Offline
Зарегистрирован: 19.10.2016

Кто-то должен за Вас проверить это скетч?

Gridzilla
Offline
Зарегистрирован: 25.10.2019

sadman41 пишет:

Кто-то должен за Вас проверить это скетч?

Нет, я его пытаюсь сделать и проверяю сам. Забыл добавить, что еще сделал переключение треков энкодером. То есть, грубо, вращаем вправо  mp3_next (); и получается, что он этим самым проигрывает потом ВСЕ файлы по кругу, то есть из всех папок. 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Gridzilla пишет:

mp3_play_file_in_folder(2, random (30)); // папки 02 в ней 30 файлов 0001-0030

Если файлы 01-30, то зачем передаёшь число 0-29?

Gridzilla пишет:
Или эта библиотека нифига не позволит сделать подобное?
Почему? Делать надо правильно.

Gridzilla пишет:
Пните в нужную сторону, плз.
У этой библиотеки до фига информационных методов. Напечатай количество и список фолдеров и файлов, посмотри что она видит. Глядишь, и прояснится.

sadman41
Offline
Зарегистрирован: 19.10.2016

А ещё - она менялась. И какой из релизов использует ТС - одному богу известно.

Gridzilla
Offline
Зарегистрирован: 25.10.2019

Ворота пишет:

Если файлы 01-30, то зачем передаёшь число 0-29?

Да, кстати... 

Ворота пишет:
Почему? Делать надо правильно.

В том-то и дело, что знаний не хватает. 

Ворота пишет:
У этой библиотеки до фига информационных методов. Напечатай количество и список фолдеров и файлов, посмотри что она видит. Глядишь, и прояснится.

В том-то и дело, что имея на карточке примерно такую структуру

--01
-----0001
-----0002
-----0003

--02
-----0001
-----0002
-----0003

--03
-----0001
-----0002
-----0003

он при повороте экондера (нажатия кнопки) после воспроизведения последнего файла в папке 03, переходит на первый файл в папке 01. Как ему сказать, что не надо выходить за пределы папки 03?

Gridzilla
Offline
Зарегистрирован: 25.10.2019

sadman41 пишет:

А ещё - она менялась. И какой из релизов использует ТС - одному богу известно.


Которая последняя с гитхаба.

sadman41
Offline
Зарегистрирован: 19.10.2016

Откуда тут энкодер появился? Он напрямую к плееру подключен, видимо?

Библиотека позволяет проиграть произвольный файл из произвольного каталога.

Gridzilla
Offline
Зарегистрирован: 25.10.2019

sadman41 пишет:

Откуда тут энкодер появился? Он напрямую к плееру подключен, видимо?

Библиотека позволяет проиграть произвольный файл из произвольного каталога.

Переключаю треки. Лево-право - следующий-предыдущий. Или кнопкой.. Не суть. Дело ведь в том, что как писал ранее, он выходит за границы папки, указанной в mp3_play_file_in_folder(folder, random ());

Ввиду своих скудных познаний и отсутствия примеров не получается реализовать то что задумано. 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Ничего не понял, а кто тебе мешает просто всегда явно указывать фолдер? Считал файлы и ходи себе по ним вперёд - назад, явно указывая фолдер. Не?

Gridzilla
Offline
Зарегистрирован: 25.10.2019

Моя глупость, мужики. Не правильно заданный вопрос привел к тому что себя запутал и вас. В общем перешел на библиотеку DFRobotDFPlayerMini, там есть myDFPlayer.loopFolder(3); зациклить папку. А ограничение при пролистывании энкодером (кнопкой) сделаю. 

 

RxMaxx
Offline
Зарегистрирован: 10.04.2020

Чтоб не плодить схожие темы, спрошу тут.

Есть ли у этого плеера какая-то возможность перемотки внутри трека? Т.е., например, воспроизводить трек не с начала, а с заданного момента времени. Ну, и заодно - можно ли узнать продолжительность проигрываемого трека?

Эти возможности в даташите не заявлены, в библиотеках ничего подобного тоже не попадалось. Но, может есть какой способ это реализовать?