AVAudioPlayer.play()不播放声音
问题描述:
为什么下面的代码不能播放声音?它为play()返回“true”,但我什么也听不到。AVAudioPlayer.play()不播放声音
let path = "/Users/account/Music/sound.mp3";
let fileURL = NSURL(fileURLWithPath: path)
var Player = AVAudioPlayer(contentsOfURL:fileURL, error:nil);
Player.delegate = self;
Player.prepareToPlay();
Player.volume = 1.0;
var res = Player.play();
println(res);
如果我改用下面的代码,我可以听到声音。
var inFileURL:CFURL = fileURL!;
var mySound = UnsafeMutablePointer<SystemSoundID>.alloc(sizeof(SystemSoundID));
AudioServicesCreateSystemSoundID(inFileURL, mySound);
AudioServicesPlaySystemSound(mySound.memory)
- OS X约塞米蒂10.10.3
- 的Xcode 6.2
答
的问题是,Player
,你AVAudioPlayer,是局部变量。所以它就会立即失效 - 甚至可以开始播放,更不用说完成播放了。
解决方法:使它成为属性而不是持续。
而且,对于本地(自动)变量和属性之间的关键生命期差异,请参阅我的书:http://www.apeth.com/swiftBook/ch03.html#_variable_scope_and_lifetime – matt 2015-03-31 22:32:32
我添加了var Player:AVAudioPlayer = AVAudioPlayer();功能外,然后它的工作。 – 2015-04-01 02:34:58