

先日、音声再生のプログラムを記述したのですが、音声が再生されません。ご指摘の程、よろしくお願いします。

[code]

    import UIKit
    import AVFoundation
    
    class ViewController: UIViewController {
    
        var player:AVAudioPlayer?
    
        let sound_data = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sample", ofType: "mp3")!)
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
    
            do {
                let player = try AVAudioPlayer(contentsOfURL: sound_data)
                player.play()
            }
            catch let error as NSError {
                print(error)
            }
    
            player?.prepareToPlay()
    
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
        @IBAction func play(sender: UIButton) {
            player?.play()
        }
    
        @IBAction func pause(sender: UIButton) {
            player?.pause()
        }
    
        @IBAction func stop(sender: UIButton) {
            player?.stop()
            player?.currentTime = 0
    
        }
    }
    
[/code]


CC BY-SA 3.0
2015-10-05T07:59:36.203
17264
2015-10-05T23:15:17.623
2015-10-05T08:05:22.147
12536
12536
question
swift
音声が再生されません


mp3を再生するためにAVAudioPlayerのインスタンスを生成してますが、それがどこにも参照されないまま解放されてるのが原因かと思われます。

以下のように修正してはどうでしょうか？

[code]

    override func viewDidLoad() {
        super.viewDidLoad()
    
        do {
            // ローカル変数に格納していたのを修正
            player = try AVAudioPlayer(contentsOfURL: sound_data)
            player?.play()
        }
        catch let error as NSError {
            print(error)
        }
    
        player?.prepareToPlay()
    }
    
[/code]


CC BY-SA 3.0
2015-10-05T08:21:57.330
17267
2015-10-05T08:21:57.330
7459
17264
answer