繁体   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

复制并粘贴此代码主要是。 编译并运行,但什么都不玩。 使用Xcode 7.1和IOS 9.1。 我错过了什么......将声音文件加载到主程序和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
}



}

你有这条线倒退了:

try audioPlayer? = AVAudioPlayer(contentsOfURL: url)

它应该是:

audioPlayer = try AVAudioPlayer(contentsOfURL: url)

旁注:这里不需要转换到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