首页 > 其他分享 >iOS开发Swift-4-IBAction,group,音乐播放器-木琴App

iOS开发Swift-4-IBAction,group,音乐播放器-木琴App

时间:2023-08-29 16:56:02浏览次数:52  
标签:play group App IBAction 木琴 func

1.使用素材创建木琴App的UI。

 2.连接IBAction。

 

 其余按钮直接拖拽到play里边。

 当鼠标置于1处时2处显示如图,表示成功。当用户按下任一按钮都会触发play中的内容。

 3.将7个按钮的View中的Tag值分别调为1、2、3、4、5、6、7.

 4.将音频文件拖入项目文件中。

 Create groups时,实际上系统只创建了一个group而不是真实文件夹。所以在填写此group下文件的路径时不需要加上group名/ 。而Create folder references需要加文件名/ 。在文件中创建新的文件夹(group)后同样不需要加上group名/ 。

 5.在ViewController中编写代码。

import UIKit
import AVFoundation

class ViewController: UIViewController {
    var player: AVAudioPlayer!
    let sounds = ["note1", "note2", "note3", "note4", "note5", "note6", "note7"]

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func play(_ sender: UIButton) {
        play(sender.tag)
    }
    
    func play(_ tag: Int) {  //play方法重载
        //forResource:音频文件名。withExtension:扩展名
        let url = Bundle.main.url(forResource: sounds[tag - 1], withExtension: "wav")!
        do {
            player = try AVAudioPlayer(contentsOf: url)
            player.play()
        } catch {
            print(error)
        }
    }
    
}

6.启动测试

点击不同按键可以发出不同音符的音乐。

 

标签:play,group,App,IBAction,木琴,func
From: https://www.cnblogs.com/lysboke/p/17665309.html

相关文章

  • Vue【原创】基于elementui的分组多选下拉框【group-list】
    效果图: 如图分为多选模式和单选模式。 group-select:1<template>2<div>3<el-select4v-model="innerValue"5:placeholder="placeholder"6@change="changeSelect"......
  • The Riordan Group and Applications笔记
    2022年的一本书,只有376页。证明直接去书里面找。目录1介绍1.1啥是RiordanArray1.2源起和研究动机1.3基础的应用练习参考2系数抽取和生成函数2.1形式幂级数2.2系数抽取2.3拉格朗日反演定理2.4生成函数练习参考3RiordanGroup3.1RiordanArray和RiordanGroup3.2一些特殊......
  • [ Skill ] Fig Group 和 Sync Clone
    https://www.cnblogs.com/yeungchie/查看当前cellview中的FigGroupcvId~>figGroups查看FigGroup类型figGroup~>type"none"为普通FigGroup"syncClone"为syncClone类型的FigGroup创建FigGroupfigGroup=dbCreateFigGroup(cvId"goup0&quo......
  • pandas groupby 参数 group_keys
    pandasgroupby参数 group_keyshttps://zhuanlan.zhihu.com/p/545215035https://blog.csdn.net/m0_46669407/article/details/108243184......
  • Openstack Nova Security Group——安全组之架构篇
    哈,又回来了!公司同事说不要只停留在逻辑层,你要对跑在你程序底下的数据流也要非常的清楚。但是这里还是先介绍一下逻辑层,在代码的角度看是如何实现这个功能的,关于底层的数据流,还需要哦酝酿一段时间,之后会再总结一篇底层数据流的文章,真难为我了!一、什么是安全组安全组,翻译成英文是sec......
  • 子查询用order by,外层用group by但是order by没生效
    今天遇见一个需求:从entity表查询name在我传过来的一个name集合里面,但是同一个name可能会重复,所以我需要根据plan字段判断取每个name的第一条,如果plan=我传进来的plan,优先,plan不等于我传进来的参数的情况下,如果plan不为空,优先,最后就是plan为空的数据。返回的数据就是每个name的第一......
  • GROUP BY的理解
    sql GROUPBY怎么理解呢就是数据分类,select后面跟上要分类的物品假如有一个仓库表---------------------------------------水果|颜色苹果| 绿苹果| 红梨子|黄--------------------------------------------------------------比如select水果from仓库 GRO......
  • 【算法】在vue3的ts代码中分组group聚合源数据列表
    有一个IList<any>()对象列表,示例数据为[{id:'1',fieldName:'field1',value:'1'},{id:'1',fieldName:'field2',value:'2'},{id:'2',fieldName:'field1',value:'1'},{id:'2',......
  • jmeter详解-线程组详解(9)-bzm - Free-Form Arrivals Thread Group
    bzm-Free-FormArrivalsThreadGroup介绍: 顾名思义,相当于自由形式的ArrivalsThreadGroup,它只是提供了自由形式的时间表的能力。相当于我们可以更灵活的控制 每分钟/每秒钟的请求数。页面说明:ThreadsSchedule(线程场景):Startvalue:开始时的用户数Endvalue:结束时......
  • jmeter详解-线程组详解(8)-bzm - Arrivals Thread Group
    bzm-ArrivalsThreadGroupArrival:到来,抵达介绍这个线程组使用“arrivals”调度作为一种表达负载的方式。“arrivals”表示线程迭代开始。如果所有现有线程在迭代过程中都很忙,它将创建新线程。注意,恒定的到达率意味着增加并发性,所以要小心你输入的值。使用“ConcurrencyLimi......