swiftUI实战一音频播放器

打印 上一主题 下一主题

主题 724|帖子 724|积分 2172

目录

一、项目先容
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 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表