TaifunPlayer 扩展(Audio Player)
TaifunPlayer 是一个免费的音频播放器扩展,为 App Inventor 应用提供了强大的流媒体播放功能。该扩展支持在线流媒体播放、播放控制(播放、暂停、停止、前进、后退)、播放状态检查、循环模式设置、静音控制等全面的音频播放管理功能。
包名:com.puravidaapps.TaifunPlayer
作者:Taifun
下载链接
扩展文件:
com.puravidaapps.TaifunPlayer.aix
示例文件:
功能概述
扩展特性
- 流媒体播放:支持在线流媒体播放
- 播放控制:播放、暂停、停止、前进、后退、前进到位置
- 播放状态:检查播放状态(是否正在播放)
- 循环模式:设置播放循环模式
- 静音控制:设置播放器静音状态
- 时长获取:获取媒体文件的总时长和当前位置
- 播放位置:获取和设置当前播放位置
- 完整支持:支持各种音频格式的播放
截图
功能示例
函数
- Play 播放()
- 开始播放媒体文件。
- 返回类型:无返回值
- Pause 暂停()
- 暂停当前播放的媒体。
- 返回类型:无返回值
- Stop 停止()
- 停止播放并重置播放器状态。
- 返回类型:无返回值
- Forward 前进(位置)
- 从当前位置前进到指定位置(毫秒)。
- 位置:数字类型,前进的目标位置(毫秒)
- 返回类型:无返回值
- Backward 后退(位置)
- 从当前位置后退到指定位置(毫秒)。
- 位置:数字类型,后退的目标位置(毫秒)
- 返回类型:无返回值
- SeekTo 跳转到(位置)
- 跳转到指定位置(毫秒)。
- 位置:数字类型,目标位置(毫秒)
- 返回类型:无返回值
- SetLooping 设置循环(循环模式)
- 设置播放循环模式。
- 循环模式:数字类型,0=不循环,1=循环全部,2=循环当前
- 返回类型:无返回值
- GetDuration 获取时长()
- 获取媒体文件的总时长(毫秒)。
- 返回类型:数字类型,媒体总时长(毫秒)
- 返回类型:无返回值(属性)
- GetCurrentPosition 获取当前位置()
- 获取当前播放位置(毫秒)。
- 返回类型:数字类型,当前播放位置(毫秒)
- 返回类型:无返回值(属性)
- IsPlaying 是否播放中()
- 检查播放器当前是否正在播放。
- 返回类型:布尔类型,true 表示正在播放
- 返回类型:无返回值(属性)
- SetMute 设置静音(静音)
- 设置播放器静音状态。
- 静音:布尔类型,true 表示静音
- 返回类型:无返回值
属性
- Source 音源
- 获取或设置要播放的媒体源路径。
- 类型:文本类型
- 默认值:空
- IsLooping 循环中
- 获取或设置播放器是否处于循环状态。
- 类型:布尔类型
- 默认值:false
- Duration 时长
- 获取媒体文件的总时长。
- 类型:数字类型
- 只读:是
- Position 位置
- 获取或设置当前播放位置。
- 类型:数字类型
- 只读:是
- Playing 播放中
- 获取播放器当前是否正在播放。
- 类型:布尔类型
- 只读:是
- Muted 静音
- 获取或设置播放器静音状态。
- 类型:布尔类型
- 默认值:false
应用场景
1. 在线音乐播放器
创建在线音乐播放应用:
当 Button1.点击
调用 TaifunPlayer1.Play 播放
2. 播放控制
实现完整的播放控制功能:
当 Button_Play.点击
调用 TaifunPlayer1.Play 播放
当 Button_Pause.点击
调用 TaifunPlayer1.Pause 暂停
当 Button_Stop.点击
调用 TaifunPlayer1.Stop 停止
当 Button_Forward.点击
调用 TaifunPlayer1.Forward 前进 位置为5000
当 Button_Backward.点击
调用 TaifunPlayer1.Backward 后退 位置为5000
3. 播放进度显示
显示当前播放位置和总时长:
当 Clock1.计时器
设置 进度条.最大值为 调用 TaifunPlayer1.GetDuration 获取时长
设置 进度条.值为 调用 TaifunPlayer1.GetCurrentPosition 获取当前位置
4. 循环播放控制
实现单曲循环或列表循环功能:
当 Button_Loop.点击
如果 循环模式 = 0 则
调用 TaifunPlayer1.SetLooping 设置循环为 1 // 循环全部
否则
调用 TaifunPlayer1.SetLooping 设置循环为 0 // 不循环
5. 状态检查
根据播放状态更新界面:
当 Clock1.计时器
如果 调用 TaifunPlayer1.IsPlaying 是否播放中 = true 则
设置 标签.文本为"正在播放"
否则
设置 标签.文本为"已停止"
6. 快速跳转
实现快进和快退功能:
当 Button_SeekForward.点击
调用 TaifunPlayer1.SeekTo 跳转到当前位置 + 10000
当 Button_SeekBackward.点击
调用 TaifunPlayer1.SeekTo 跳转到当前位置 - 10000
7. 静音控制
实现静音功能:
当 Toggle_Mute.点击
调用 TaifunPlayer1.SetMute 设置静音为 取反 静音
如果 调用 TaifunPlayer1.Muted 静音 = true 则
显示通知"已静音"
否则
显示通知"取消静音"
使用说明
基本使用步骤
- 添加扩展:将 TaifunPlayer 扩展添加到项目中
- 设置音源:使用 Source 属性或函数设置要播放的音频文件路径
- 调用播放:使用 Play 函数开始播放
- 控制播放:使用 Pause、Stop、Forward、Backward 等函数控制播放
- 获取状态:使用 IsPlaying、GetCurrentPosition、GetDuration 等函数获取播放信息
- 设置循环:使用 SetLooping 函数设置循环模式
重要提示
- 文件路径:确保音频文件路径正确,支持相对路径和完整路径
- 播放状态:使用 IsPlaying 函数检查播放状态,避免重复调用
- 位置控制:位置以毫秒为单位,前进和后退时注意不要超出总时长
- 循环模式:循环模式会影响播放结束后的行为,根据需求设置
- 静音功能:静音状态下播放器仍然在运行,只是不输出声音
性能优化建议
- 及时释放:不再需要播放时使用 Stop 函数释放资源
- 状态检查:避免频繁调用状态检查函数
- 合理跳转:使用 SeekTo 而不是连续的 Forward/Backward
- 循环注意:循环播放可能增加电池消耗
技术说明
播放控制
扩展提供了完整的音频播放控制功能:
- 播放/暂停:Play 和 Pause 函数
- 停止:Stop 函数完全重置播放器
- 位置控制:Forward 和 Backward 精确控制播放位置
- 跳转功能:SeekTo 直接跳转到指定位置
状态管理
通过属性和函数获取播放器状态:
- 播放状态:Playing 属性和 IsPlaying 函数
- 播放位置:Position 属性和 GetCurrentPosition 函数
- 媒体时长:Duration 属性和 GetDuration 函数
- 循环状态:IsLooping 属性
循环模式
支持三种循环模式:
- 0:不循环,播放完成后停止
- 1:循环全部,播放完成后重新开始
- 2:循环当前,当前曲目循环播放
版本信息
- 当前版本:1.0
- 发布日期:2024年12月29日
- 兼容性:App Inventor 2
- 文件大小:383.1 KB
常见问题
Q: 如何播放流媒体?
A: 使用 Source 属性设置流媒体 URL,然后调用 Play 函数。
Q: 如何获取播放进度?
A: 使用 GetCurrentPosition 获取当前位置,GetDuration 获取总时长,计算百分比。
Q: 如何实现快进快退?
A: 使用 Forward 和 Backward 函数,或使用 SeekTo 跳转到指定位置。
Q: 如何设置循环播放?
A: 使用 SetLooping 函数设置循环模式,1=循环全部,2=循环当前。
Q: 如何检查播放状态?
A: 使用 IsPlaying 函数或 Playing 属性检查播放器是否正在播放。
Q: 支持哪些音频格式?
A: 扩展支持 Android 支持的各种音频格式,如 MP3、AAC、WAV 等。
版权信息
本文档基于 Puravida Apps 网站页面整理,原作者为 Taifun。
原始链接:https://puravidaapps.com/player.php
文档翻译和整理:AI2中文网
扫码添加客服咨询