使用 8 个不同 .wav 文件的单个按钮的随机声音发生器。每个文件命名为sound1.wav、sound2.wav.... sound8.wav

Posted

技术标签:

【中文标题】使用 8 个不同 .wav 文件的单个按钮的随机声音发生器。每个文件命名为sound1.wav、sound2.wav.... sound8.wav【英文标题】:Random sound generator for a single button that uses 8 different .wav files. Each file is named sound1.wav, sound2.wav.... sound8.wav 【发布时间】:2020-04-29 02:27:15 【问题描述】:

从其他 *** 帖子中获得了我的大部分信息,但没有任何帮助。

  import UIKit
    import AVFoundation

    class FaceButtonScreen: UIViewController 

        @IBOutlet weak var mainButton1: UIButton!

        var audioPlayer: AVAudioPlayer = AVAudioPlayer()

不确定数组是否正确

        var arrayOfSounds = ["sound1", "sound2", "sound3", "sound4", "sound5", "sound6", "sound7", "sound8"]

        func setupAudioPlayer(file: NSString, type: NSString)

            let path = Bundle.main.path(forResource: file as String, ofType: type as String)
            let url = NSURL.fileURL(withPath: path!)
            do 
                try audioPlayer = AVAudioPlayer(contentsOf: url)
             catch 
                print("Player not available")
            

        


        

这里有一个连接到按钮的不同功能,但是 显示错误

    func faceButtonTapped(_ sender: UIButton) 
            let range: UInt32 = UInt32(arrayOfSounds.count)
            let number = Int(arc4random_uniform(range))
        let sound = arrayOfSounds.randomElement()
            self.setupAudioPlayer(arrayOfSounds[number], type: ".wav")
            self.audioPlayer?.play()



    //I need to understand how to complete the array and connect the sound files; any 
     help would be greatly appreciated

【问题讨论】:

【参考方案1】:

这是我挖出的一些 Swift 代码:

let url = Bundle.main.url(forResource: "sound1", withExtension: "wav")

我想我看到了问题: 您将类型传递为“.wav”而不是“wav”

回答 • 删除字符串中的句点:“.wav”

【讨论】:

以上是关于使用 8 个不同 .wav 文件的单个按钮的随机声音发生器。每个文件命名为sound1.wav、sound2.wav.... sound8.wav的主要内容,如果未能解决你的问题,请参考以下文章

从多通道 wav 文件中读取单个通道

正确读取 .wav 文件中的样本

在 C 中使用 ALSA 以不同的音量播放多个 wav 文件

在 Python 中用 24 位数据从立体声 wav 文件 wav 中读取单个通道的数据

如何使用python [duplicate]连接多个.wav文件

如何将 8 位无符号 wav 文件转换为 8 位有符号 wav 文件?