Текущая версия — v2.2.51. Чтобы проверить версию, используйте команду console.log(ZAudio.version)
.
http://jingangtui.gitee.io/uniapp-z-audio/#/
Загрузите плагин из Marketplace или выполните команду npm install uniapp-zaudio
.
Создайте экземпляр класса ZAudio и подключите его:
Внимание к регистру: ZAudio — это класс. Если вы используете HbuilderX, импортируйте плагин следующим образом: import ZAudio from '@/components/uniapp-zaudio' (возможно, потребуется изменить каталог). Или используйте npm: import ZAudio from 'uniapp-zaudio'.
import ZAudio from '@/components/uniapp-zaudio'; //HbuilderX插件导入方式, import可能需要修改目录名哦
// import ZAudio from 'uniapp-zaudio'; // npm引用方式
let zaudio = new ZAudio({
continuePlay: true, //продолжение воспроизведения
autoPlay: true, //автоматическое воспроизведение (не поддерживается некоторыми браузерами)
});
Vue.prototype.$zaudio = zaudio; //подключение к Vue прототипу
//Пример данных аудио, не используйте в реальных сценариях
var data = [
{
src:
"https://96.f.1ting.com/local_to_cube_202004121813/96kmp3/zzzzzmp3/2016aJan/18X/18d_DeH/01.mp3",
title: "恭喜发财",
singer: "刘德华",
coverImgUrl:
"https://img.1ting.com/images/special/75/s150_f84ef5082b0420f74cd2546b986ab0fc.jpg",
},
{
src:
"https://96.f.1ting.com/local_to_cube_202004121813/96kmp3/zzzzzmp3/2015kNov/25X/25m_XiaoQ/03.mp3",
title: "好运来",
singer: "Автор 1111",
coverImgUrl:
"https://img.1ting.com/images/special/204/s150_77254cd4a4da1a33b8faf89c4cbf6e40.jpg",
},
];
zaudio.setAudio(data); //добавление аудио
zaudio.setRender(0); //рендеринг первой песни
Используйте компонент:
Внимание к регистру: zaudio — это компонент.
<zaudio theme="theme3"></zaudio>
import zaudio from '@/components/uniapp-zaudio/zaudio';
// import zaudio from 'uniapp-zaудио/zaudio'
export default {
components: { zaudio: zaudio },
};
Параметр | Тип | Обязательный | Описание | Дополнительно |
---|---|---|---|---|
theme | String | Нет | Тема | theme2, theme1 или theme3 (по умолчанию theme1) |
themeColor | String | Нет | Цвет индикатора выполнения | По умолчанию #42b983 |
Пример использования:
<zaudio theme="theme1" themeColor="#42b983" />
Метод | Тип | Обязательный | Описание |
---|---|---|---|
on(event, action, fn) | — | Да | Регистрация бизнес-события в обратном вызове аудио |
off(event, action) | — | Да | Отмена регистрации бизнес-события, важно |
setAudio(data) | — | Нет | Установка списка аудио (присвоение значения audiolist) |
updateAudio(data) | — | Нет | Добавление аудио в список (добавление данных в audiolist через push) |
setRender(data) | — | Нет | Указание индекса аудио или объекта для рендеринга в компоненте zaudio, можно использовать для асинхронного рендеринга |
operate(index) | — | Нет | Определение индекса для автоматического управления воспроизведением и рендерингом соответствующего аудио, если индекс не указан, то определяется текущее аудио |
stop() | — | — | Остановка воспроизведения аудио (остановка принудительно) |
stepPlay(count) | — | — | Пропуск вперёд или назад (в секундах, тип Number) |
syncStateOn(action, fn) | Регистрация события для получения текущего состояния воспроизведения в реальном времени. См. Получение состояния воспроизведения аудио и его свойств
| action (имя бизнес-операции), fn (функция обратного вызова, параметры обратного вызова см. Свойства аудиообъекта
)
syncStateOff(action) | Отключение события, используемого для получения состояния воспроизведения аудио в реальном времени. См. Получение состояния воспроизведения аудио и его свойств
| action (соответствует имени бизнес-операции при регистрации).
Инициализация класса ZAudio и рендеринг аудио:
let zaudio = new ZAudio({
continuePlay: true, //продолжение воспроизведения
autoPlay: true, //автоматическое воспроизведение (частично не поддерживается браузерами)
});
var data = [
{
src:
"https://96.f.1ting.com/local_to_cube_202004121813/96kmp3/zzzzzmp3/2016aJan/18X/18d_DeH/01.mp3",
title: "С праздником богатства",
singer: "Лю Дэхуа",
coverImgUrl:
"https://img.1ting.com/images/special/75/s150_f84ef5082b0420f74cd2546b986ab0fc.jpg",
},
{
src:
"https://96.f.1ting.com/local_to_cube_202004121813/96kmp3/zzzzzmp3/2015kNov/25X/25m_XiaoQ/03.mp3",
title: "Счастливого пути",
singer: "Автор 1111",
coverImgUrl:
"https://img.1ting.com/images/special/204/s150_77254cd4a4da1a33b8faf89c4cbf6e40.jpg",
}
];
// Настройка данных аудио
zaudio.setAudio(data);
//Рендеринг первой песни
zaudio.setRender(0);
Асинхронная загрузка:
setTimeout(()=>{
zaudio.setAudio(data);
zaudio.operate(0); //Рендеринг первого аудио вручную
},2000)
zaudio.on(event, action, fn)
: регистрация события.zaudio.off(event, action)
: отключение события. Это можно сделать на странице, чтобы повысить производительность.event (имя обратного вызова аудио) | действие (пользовательское имя операции) | Описание | Параметры fn |
---|---|---|---|
ожидание | тип string или symbol | загрузка аудио во время обратного вызова | текущее состояние загрузки |
ошибка | тип string или symbol | обратный вызов при ошибке воспроизведения | |
воспроизведение | тип string или symbol | воспроизведение обратного вызова | текущий воспроизводимый объект аудио |
canPlay | тип string или symbol | начальный обратный вызов воспроизведения | текущий воспроизводимый объект аудио |
пауза | тип string или symbol | пауза обратного вызова | |
завершение | тип string или symbol | завершающий обратный вызов | |
setAudio | тип string или symbol | обратный вызов для замены аудио | текущий список аудио |
updateAudio | тип string или symbol | добавление аудио обратного вызова | текущий список аудио |
остановка | тип string или symbol | принудительная остановка воспроизведения обратного вызова, закрытие плавающего окна аудио в мини-программе | |
поиск | тип string или symbol | перемотка вперёд и назад обратного вызова | текущая точка перехода во времени |
Воспроизведение обратного вызова с двумя событиями:
onLoad(query) {
//воспроизведение обратного вызова, регистрация `event-a` и `event-b` двух событий печати
this.$zaudio.on('playing', 'event-a', data => {
console.log(data,'event-a')
});
this.$zaudio.on('playing', 'event-b', data => {
console.log(data,'event-b')
});
},
destroyed(){
//отключение событий на странице для повышения производительности
this.$zaudio.off('playing', 'event-a')
this.$zaudio.off('playing', 'event-b')
}
onShow(){
//Синхронно рендерим текущее состояние воспроизведения
this.$zaudio.syncRender();
},
Свойства объекта аудио
.data(){
return {
audiolist: this.$zaudio.audiolist, //текущий список аудио
playIndex: this.$zaudio.playIndex, //индекс текущего воспроизведения
paused: this.$zaудио.paused, //приостановленное состояние текущего воспроизведения
playinfo: this.$zaudio.playinfo //информация о текущем воспроизведении
}
}
onShow(){
//получение состояния аудио и свойств
this.getAudioState();
},
methods:{
getAudioState() {
//регистрация page-index-get-state, получение состояния свойств zaudio в реальном времени
this.$zaudio.syncStateOn('page-index-get-state', ({ audiolist, playIndex, paused, playinfo }) => {
this.audiolist = audiolist;
this.playIndex = playIndex;
this.paused = paused;
this.playinfo = playinfo;
});
}
},
onHide(){
//отключить page-index-get-state для повышения производительности страницы
this.$zaudio.syncStateOff('page-index-get-state')
}
name | Описание | Другое |
---|---|---|
renderIndex | Индекс рендеринга zaudio | |
audiolist | Массив списка аудио | [{src: аудиофайл вызывает, title: название аудио, singer: автор, coverImgUrl: обложка аудиофайла}] |
--- | --- | --- |
renderinfo | текущая информация о рендеринге | |
playinfo | текущая информация о воспроизведении | |
paused | состояние паузы аудио | true: пауза |
playIndex | текущий индекс воспроизведения | |
renderIsPlay | соответствие между рендерингом и воспроизведением | |
loading | статус загрузки |
Пример использования:
let zaudio = new ZAudio();
console.log(zaudio.audiolist); // получить текущие данные списка аудиофайлов
console.log(zaudio.renderIndex); // получить значение индекса аудиофайла, который в данный момент рендерится компонентом zaudio
Примечание: атрибуты, полученные выше, не являются состоянием в реальном времени. Для получения состояния в реальном времени см. Получение состояния воспроизведения аудио и атрибутов в реальном времени
.
В manifest.json настройте для мини-программы:
"mp-weixin": {
"requiredBackgroundModes": ["audio"],
"appid": "",
"setting": {
"urlCheck": false
},
"usingComponents": true
}
Обратите внимание, что на платформе iOS необходимо упаковать IPA для того, чтобы это заработало.
"ios": {
"UIBackgroundModes": ["audio"]
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )