论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
移动端开发
›
IOS
›
swiftUI实战一音频播放器
swiftUI实战一音频播放器
雁过留声
金牌会员
|
2024-10-15 20:29:46
|
显示全部楼层
|
阅读模式
楼主
主题
965
|
帖子
965
|
积分
2895
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
目录
一、项目先容
1.项目阅览编辑
2.项目简介
3.项目出处
二、项目目的
三、项目框架
1.swiftUI
2.AVKit
四、项目布局
1.主要组件
2.布局
3.音频控制
4.播放器视图
5.优化
6.制作流程
五、代码分析
1.导入模块和声明布局体:
2.状态变量
3.视图布局
4.音频播放控制函数
4.1设置音频播放器
4.2播放音频编辑
4.2停息音频编辑
4.3更新播放进度
4.4跳转到指定时间播放
4.5将时间间隔格式化为字符串
4.6播放器视图
4.7优化代码(扩展功能)
一、项目先容
1.项目阅览
2.项目简介
本项目旨在开发一个简单且功能齐全的音乐播放器应用,利用SwiftUI和AVFoundation框架实现。该应用能够播放、停息音乐,并显示音乐播放的进度条。用户可以通过滑块控制播放进度,应用在播放时会实时更新当前播放时间。
3.项目出处
SwiftUI开发音乐播放器_哔哩哔哩_bilibili
二、项目目的
实现一个基本的音乐播放器功能,包罗播放、停息、进度控制。
学习和应用SwiftUI的视图构建方法。
相识AVFoundation框架在音频处理方面的基本利用方法。
三、项目框架
1.swiftUI
用途
:用于构建用户界面。
功能
:提供声明式语法来构建UI视图,支持相应式编程,能够与视图绑定变量和状态。
2.AVKit
用途
:用于处理音频和视频的播放。
功能
:提供播放、停息、进度控制等多媒体功能。
四、项目布局
1.主要组件
ContentView
:这是应用的主视图,包含了播放器的布局和功能。
@State 和 @Binding 变量
:这些变量用于管理播放器的状态和界面交互。
@State private var player: AVAudioPlayer?:音频播放器对象。
@State private var isPlaying = false:当前播放状态。
@State private var totalTime: TimeInterval = 0.0:音频总时长。
@State private var currentTime: TimeInterval = 0.0:当前播放时间。
@Binding var expandSheet: Bool:用于控制是否展开Sheet。
var animation: Namespace.ID:用于动画的命名空间ID。
@State private var animationContent: Bool = false:控制动画内容的状态变量。
2.布局
GeometryReader
:用于读取视图的几何信息,如尺寸和安全区域。
ZStack
:叠加布局,配景矩形和模糊图像。
VStack
:垂直堆叠布局,包含图像和播放器视图。
3.音频控制
setupAudio()
:设置音频播放器,包罗加载音频文件和获取音频总时长。
playAudio()
:播放音频。
stopAudio()
:停息音频。
updateProgress()
:更新播放进度。
seekAudio(to
:跳转到指定时间播放音频。
4.播放器视图
PlayerView(_
:自定义播放器视图,包含音频信息、播放进度条、播放控制按钮和音量控制。
5.优化
deviceCornerRadius
:扩展View来获取设备屏幕的圆角半径,确保界面适配不同设备。
6.制作流程
创建项目
:利用 Xcode 创建一个新的 SwiftUI 项目。
添加资源
:将音频文件和图像资源添加到项目的资源包中。
构建布局
:利用 SwiftUI 构建应用的主界面,包含图像和播放器控件。
实现音频控制
:利用 AVFoundation 框架实现音频的播放、停息和进度更新功能。
调试和优化
:在模拟器或真机上测试应用,确保音频播放功能正常,并根据需要进行优化。
五、代码分析
1.导入模块和声明布局体:
导入SwiftUI和AVKit框架。
声明ContentView布局体并定义其属性。
2.状态变量
定义用于管理音频播放器和播放状态的状态变量,比方player、isPlaying、totalTime和currentTime。
定义用于控制Sheet扩展的绑定变量expandSheet和动画命名空间animation。
3.视图布局
利用GeometryReader读取视图的几何信息。
利用ZStack、Rectangle和Image构建配景视图。
利用VStack构建主视图布局,包罗图像和播放器视图。
4.音频播放控制函数
4.1设置音频播放器
4.2播放音频
4.2停息音频
4.3更新播放进度
4.4跳转到指定时间播放
4.5将时间间隔格式化为字符串
4.6播放器视图
4.7优化代码(扩展功能)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
雁过留声
金牌会员
这个人很懒什么都没写!
楼主热帖
XShell免费版的安装配置教程以及使用教 ...
阿里云体验有奖:如何将 PolarDB-X 与 ...
day02-代码实现01
【如何优化她】教你如何定位不合理的SQ ...
微服务大行其道的今天,Service Mesh是 ...
十年技术进阶路,让我明白了三件要事( ...
常用类-LocalDate、LocalTime、LocalDa ...
无需支付688苹果开发者账号,xcode13打 ...
鸿蒙3.0来了,这次,我真的想批评鸿蒙 ...
Elasticsearch 入门实战(5)--Java API ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
分布式数据库
前端开发
物联网
程序人生
Oracle
快速回复
返回顶部
返回列表