# wordstudy-uniapp
**Repository Path**: tm_123/wordstudy-uniapp
## Basic Information
- **Project Name**: wordstudy-uniapp
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-07-23
- **Last Updated**: 2025-07-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# scory-audio
一个功能强大的音频播放器组件,支持播放列表、倍速播放、多种播放模式等功能。
## 功能特点
- 支持单曲和播放列表模式
- 支持循环、随机、单曲循环三种播放模式
- 支持倍速播放(0.5x-2.0x)
- 支持播放进度控制
- 支持自动加载音频时长
- 支持封面图片显示
- 支持播放列表展开/收起
- 支持自动播放
- 支持自定义开始时间
- 支持自定义样式
- 支持事件监听
## 效果展示

播放器包含以下主要部分:
1. 封面图片显示区域
2. 歌曲信息显示(标题、艺术家)
3. 播放进度条
4. 播放控制按钮(播放模式、上一首、播放/暂停、下一首、播放列表)
5. 播放列表展示区域(可展开/收起)
6. 倍速播放控制
## 安装
1. 在 uni-app 项目中,通过插件市场导入本组件
2. 在页面中引入组件:
```vue
```
## 属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| src | String | '' | 音频源地址 |
| cover-image | String | '' | 封面图片地址 |
| title | String | '未知歌曲' | 歌曲标题 |
| artist | String | '未知艺术家' | 艺术家名称 |
| playlist | Array | [] | 播放列表,数组项格式:{src, title, artist, duration} |
| autoplay | Boolean | false | 是否自动播放 |
| loop | Boolean | false | 是否循环播放 |
| start-time | Number | 0 | 初始播放位置(秒) |
| obey-mute-switch | Boolean | false | 是否遵守静音开关 |
| custom-class | String | '' | 自定义样式类名 |
## 事件说明
| 事件名 | 参数 | 说明 |
|--------|------|------|
| play | - | 开始播放时触发 |
| pause | - | 暂停播放时触发 |
| ended | - | 播放结束时触发 |
| timeupdate | {currentTime, duration, progress} | 播放进度更新时触发 |
| error | {errMsg} | 播放错误时触发 |
| songchange | {index, song} | 歌曲切换时触发 |
| seeking | time | 开始拖动进度条时触发 |
| seeked | time | 拖动进度条结束时触发 |
## 方法说明
| 方法名 | 参数 | 说明 |
|--------|------|------|
| play | - | 开始播放 |
| pause | - | 暂停播放 |
| togglePlay | - | 切换播放/暂停状态 |
| seek | time | 跳转到指定时间(秒) |
| setPlaylist | playlist | 设置播放列表 |
| playNext | - | 播放下一首 |
| playPrevious | - | 播放上一首 |
| setPlayMode | mode | 设置播放模式(loop/random/single) |
| setPlaybackRate | rate | 设置播放倍率 |
| destroy | - | 销毁播放器实例 |
## 播放列表格式
```javascript
[
{
src: '音频地址',
title: '歌曲标题',
artist: '歌手名称',
duration: 180 // 音频时长(秒),可选
}
]
```
## 播放模式
- loop: 循环播放
- random: 随机播放
- single: 单曲循环
## 倍速播放
支持以下倍速:
- 0.5x
- 0.8x
- 1.0x
- 1.25x
- 1.5x
- 2.0x
## 样式定制
组件支持通过 `custom-class` 属性添加自定义样式类名,可以覆盖默认样式:
```vue
```
```css
.my-audio-player {
/* 覆盖默认样式 */
background-color: #f5f5f5;
}
.my-audio-player .cover-image {
border-radius: 50%;
}
.my-audio-player .progress-bar {
height: 4px;
}
```
## 注意事项
1. 音频源地址需要是可访问的 URL
2. 建议在播放列表中提供音频时长,否则组件会自动加载
3. 在 H5 环境下,某些浏览器可能不支持倍速播放
4. 建议在组件销毁前调用 destroy 方法释放资源
5. 在微信小程序中,音频播放需要用户交互触发
6. 在 iOS 设备上,音频播放可能受到系统限制
## 常见问题
1. Q: 为什么音频无法自动播放?
A: 大多数浏览器和小程序平台都限制了自动播放,需要用户交互后才能播放。
2. Q: 为什么倍速播放在某些设备上不生效?
A: 倍速播放功能依赖于设备的音频 API 支持,某些设备或浏览器可能不支持。
3. Q: 如何实现后台播放?
A: 在 App 端可以通过配置 manifest.json 实现后台播放,H5 和小程序端需要遵循平台规范。
4. Q: 播放列表切换时出现卡顿怎么办?
A: 可以预加载下一首音频,或者优化音频资源的加载策略。
## 更新日志
### v1.0.0
- 初始版本发布
- 支持基本音频播放功能
- 支持播放列表管理
- 支持多种播放模式
- 支持倍速播放