简体   繁体   English

使用swift 2.0代码Xcode 7.1 IOS 9.1播放嵌入式声音

[英]Playing an embedded sound using swift 2.0 code Xcode 7.1 IOS 9.1

Copied and Pasted this code principally. 复制并粘贴此代码主要是。 Compiles and runs, but plays nothing. 编译并运行,但什么都不玩。 Using Xcode 7.1 and IOS 9.1. 使用Xcode 7.1和IOS 9.1。 What have I missed... Loaded sound file into main program and AVAssets... 我错过了什么......将声音文件加载到主程序和AVAssets ......

import UIKit
import AVFoundation

class ViewController: UIViewController {

   var buttonBeep : AVAudioPlayer?

   override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    buttonBeep = setupAudioPlayerWithFile("hotel_transylvania2", type:"mp3")
    //buttonBeep?.volume = 0.9
    buttonBeep?.play()
   }

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

func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer?  {
    //1
    let path = NSBundle.mainBundle().pathForResource(file as String, ofType: type as String)
    let url = NSURL.fileURLWithPath(path!)

    //2
    var audioPlayer:AVAudioPlayer?

    // 3
    do {
        try audioPlayer? = AVAudioPlayer(contentsOfURL: url)
    } catch {
        print("Player not available")
    }

    return audioPlayer
}



}

You've got this line backwards: 你有这条线倒退了:

try audioPlayer? = AVAudioPlayer(contentsOfURL: url)

It should be: 它应该是:

audioPlayer = try AVAudioPlayer(contentsOfURL: url)

Side note: the conversion to and from NSString is not necessary here, just use String - and you should not force unwrap the result of NSBundle: 旁注:这里不需要转换到NSString和从NSString转换,只需使用String - 你不应该强制解包NSBundle的结果:

func setupAudioPlayerWithFile(file:String, type:String) -> AVAudioPlayer?  {
    //1
    guard let path = NSBundle.mainBundle().pathForResource(file, ofType: type) else {
        return nil
    }
    let url = NSURL.fileURLWithPath(path)

    //2
    var audioPlayer:AVAudioPlayer?

    // 3
    do {
        audioPlayer = try AVAudioPlayer(contentsOfURL: url)
    } catch {
        print("Player not available")
    }

    return audioPlayer
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM