我试着用AVAudioPlayer播放声音,但是不行.

Edit 1:仍然不起作用.

Edit 2:此代码可以工作.我的设备处于静默模式.

import UIKit
import AVFoundation

class ViewController: UIViewController {

    var audioPlayer = AVAudioPlayer()

    override func viewDidLoad() {
        super.viewDidLoad()

        var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("button-09", ofType: "wav"))
        println(alertSound)

        var error:NSError?
        audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
        audioPlayer.prepareToPlay()
        audioPlayer.play()
    }
}

推荐答案

对代码进行了修改:

import UIKit
import AVFoundation

class ViewController: UIViewController {

    var audioPlayer = AVAudioPlayer()

    override func viewDidLoad() {
        super.viewDidLoad()

        var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("button-09", ofType: "wav"))
        println(alertSound)

        // Removed deprecated use of AVAudioSessionDelegate protocol
        AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
        AVAudioSession.sharedInstance().setActive(true, error: nil)

        var error:NSError?
        audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
        audioPlayer.prepareToPlay()
        audioPlayer.play()
    }

}

Swift 3 and Swift 4.1:

import UIKit
import AVFoundation

class ViewController: UIViewController {
    private var audioPlayer: AVAudioPlayer?

    override func viewDidLoad() {
        super.viewDidLoad()

        let alertSound = URL(fileURLWithPath: Bundle.main.path(forResource: "button-09", ofType: "wav")!)
        print(alertSound)

        try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
        try! AVAudioSession.sharedInstance().setActive(true)

        try! audioPlayer = AVAudioPlayer(contentsOf: alertSound)
        audioPlayer!.prepareToPlay()
        audioPlayer!.play()
    }
}

Ios相关问答推荐

如何在进行滑动删除操作时保持自定义视图背景静态

实例方法wait在异步上下文中不可用;请改用TaskGroup;这是Swift 6中的错误''

创建带有Flutter 翼的会所头像

swift|在具有自定义单元格的多个TableView中没有任何内容

SwiftUI:.toolbar 不适用于 UITextView

错误地提取问题的答案选项

SKScene 的更新功能似乎不起作用

一对多关系 Firebase 实时数据库(嵌入数百万条 comments )

AppCenter 错误:/usr/bin/xcodebuild 失败,返回码:65

Swift 图表:.chartYScale 似乎只适用于 100 的增量?

从父母到子元素的 Swift Pass 事件

向左或向右移动时如何水平翻转sprite?

将视图(例如 Text())不透明度设置为 0 或将背景设置为 Color.clear 会导致它不被绘制

iOS 10 错误:UICollectionView 接收到具有不存在索引路径的单元格的布局属性

如何启用滑动以删除 TableView 中的单元格?

针对 Xcode 中的 iPad 选项

如何用 CAShapeLayer 和 UIBezierPath 画一个光滑的圆?

AFNetworking 2.0 向 GET 请求添加标头

闭包不能隐式捕获变异的 self 参数

如何为 UILabel 的背景 colored颜色 设置动画?