Аудио и Видео
- Как открыть аудио файл и воспроизвести его?
- Какие форматы аудио поддерживает DevelNext?
- Как управлять воспроизведением аудио?
Как открыть аудио файл и воспроизвести его?
Используйте специальный класс action\Media
:
use action\Media;
Media::open('D:/Music/Soundtrack.mp3');
Есть вариант использовать класс плеера script\MediaPlayerScript
, у каждого плеера свой канал воспроизведения в отличии от Media
:
use script\MediaPlayerScript;
$player = new MediaPlayerScript();
$player->open('D:/Music/Soundtrack.mp3');
$player->play();
Какие форматы аудио поддерживает DevelNext?
Поддерживаются следующие форматы:
- mp3 - самый распространенный формат для музыки и треков.
- wav, wave - подходит для звуков.
А также формат aif (или aiff).
Как управлять воспроизведением аудио?
Описание функций игры, паузы, остановки, изменения громкости и баланаса, изменения позиции.
Для гибкого управления плеером используйте класс script\MediaPlayerScript
, вам не обязательно создавать его вручную в коде, вы можете добавить компонент Аудио плеер
в ваш модуль, это будет тоже самое, но обращаться к компоненту вы сможете как к обычно:
use script\MediaPlayerScript;
$player = new MediaPlayerScript();
$player->open('music.mp3');
Но лучше создайте в модулю компонент Аудио плеер
и используйте его:
$this->player->open('music.mp3');
Далее в статье мы будем использовать
$this->player
как объект плеера для примеров.
Играть, пауза и стоп
Для этих функций есть методы:
$this->player->play(); // начинает воспроизведение.
$this->player->pause(); // ставит на паузу или убирает с паузы, если плеер был на паузе.
$this->player->stop(); // останавливает воспроизведение и сбрасывает все к нулю.
Громкость
Для изменения громкости есть свойство volume
, оно принимает дробные числа от 0 до 1:
$this->player->volume = 0.5; // 50% громкости
$this->player->volume = 0.8; // 80% громкости
$this->player->volume = 0.85; // 85% громкости
$this->player->volume = 0.852; // 85,2% громкости
Чтобы присвоить громкость от компонента Ползунок (slider)
, выставите ему минимум = 0, а максимум = 100, используйте его значение:
$this->player->volume = $this->slider->value / 100;
Мы делим его значение на 100, чтобы получить дробное значение процента.
В программировании часто для процентов используют значения от 0 до 1, а не от 0 до 100.
Баланс
В данном случае имеется ввиду баланс громкости, с какой стороны воспроизводить звук громче, по умолчанию звук всегда сбалансирован как слева, так и справа, но это можно менять через свойство balance
, которое принимает дробные числа от -1 до 1, где -1 это левая сторона, а 1 - правая.
$this->player->balance = -1; // музыка играет слева
$this->player->balance = 1; // музыка играет справа
$this->player->balance = 0.5; // справа музыка играет в 2 раза громче чем слева
Позиция воспроизведения
Для этой возможности есть несколько свойств position
и positionMs
, position
это значение позиции в процентах от 0 до 100, а positionMs
- это позиция в миллисекундах:
$this->player->position = 50; // установить на середину трэка.
Вы можете связать Ползунок (slider)
с позицией следующим образом (если его минимум = 0, а максимум 100):
$this->player->position = $this->slider->value;