在 AVAudioPlayer 中,暂停后歌曲不会继续 Swift
In AVAudioPlayer after a pause the song does not continue on Swift
在 AVAudioPlayer 中,暂停后歌曲不会继续,在 Swift 上重新开始。问题是当我选择暂停按钮并再次选择播放按钮时,它应该从开始开始。
import UIKit
import AVFoundation
class DetailViewController: UIViewController {
let musicArray:[String] = ["reamon", "sandman"]
var audioPlayer: AVAudioPlayer?
var songIndex:Int = 0
@IBAction func pauseButton(sender: AnyObject) {
audioPlayer!.pause()
}
@IBAction func playButton(sender: AnyObject) {
let mySound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(musicArray[songIndex], ofType: "mp3")!)
do{
audioPlayer = try AVAudioPlayer(contentsOfURL: mySound)
audioPlayer!.prepareToPlay()
audioPlayer!.play()
} catch {
print("Error getting the audio file")
}
}
@IBOutlet weak var stopButtonOutlet: UIButton!
@IBAction func stopButton(sender: AnyObject) {
audioPlayer!.stop()
audioPlayer!.currentTime = 0
}
func playSongAtIndex(index: Int) {
songIndex = index
}
您每次在播放按钮操作上都在初始化 AVAudioPlayer 尝试使用其他仅调用一次的方法初始化 AVAudioPlayer 试试这个
override func viewWillAppear(animated: Bool)
{
self .intiAudioPlayer()
}
func intiAudioPlayer()
{
let mySound = NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource(musicArray[songIndex], ofType: "mp3")!)
do
{
audioPlayer = try AVAudioPlayer(contentsOfURL: mySound)
audioPlayer!.prepareToPlay()
}
catch {
print("Error getting the audio file")
}
}
您的播放按钮操作将只包含这么多代码
@IBAction func playButton(sender: AnyObject)
{
audioPlayer!.play()
}
我换个方式。一键播放和暂停。
@IBAction func playPauseButton(sender: AnyObject) {
if (player.playing == true) {
player.stop()
playPauseButtonOutlet.setImage(UIImage(named: "play.jpg"), forState: UIControlState.Normal)
} else {
player.play()
playPauseButtonOutlet.setImage(UIImage(named: "pause.jpg"), forState: UIControlState.Normal)
}
}
在 AVAudioPlayer 中,暂停后歌曲不会继续,在 Swift 上重新开始。问题是当我选择暂停按钮并再次选择播放按钮时,它应该从开始开始。
import UIKit
import AVFoundation
class DetailViewController: UIViewController {
let musicArray:[String] = ["reamon", "sandman"]
var audioPlayer: AVAudioPlayer?
var songIndex:Int = 0
@IBAction func pauseButton(sender: AnyObject) {
audioPlayer!.pause()
}
@IBAction func playButton(sender: AnyObject) {
let mySound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(musicArray[songIndex], ofType: "mp3")!)
do{
audioPlayer = try AVAudioPlayer(contentsOfURL: mySound)
audioPlayer!.prepareToPlay()
audioPlayer!.play()
} catch {
print("Error getting the audio file")
}
}
@IBOutlet weak var stopButtonOutlet: UIButton!
@IBAction func stopButton(sender: AnyObject) {
audioPlayer!.stop()
audioPlayer!.currentTime = 0
}
func playSongAtIndex(index: Int) {
songIndex = index
}
您每次在播放按钮操作上都在初始化 AVAudioPlayer 尝试使用其他仅调用一次的方法初始化 AVAudioPlayer 试试这个
override func viewWillAppear(animated: Bool)
{
self .intiAudioPlayer()
}
func intiAudioPlayer()
{
let mySound = NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource(musicArray[songIndex], ofType: "mp3")!)
do
{
audioPlayer = try AVAudioPlayer(contentsOfURL: mySound)
audioPlayer!.prepareToPlay()
}
catch {
print("Error getting the audio file")
}
}
您的播放按钮操作将只包含这么多代码
@IBAction func playButton(sender: AnyObject)
{
audioPlayer!.play()
}
我换个方式。一键播放和暂停。
@IBAction func playPauseButton(sender: AnyObject) {
if (player.playing == true) {
player.stop()
playPauseButtonOutlet.setImage(UIImage(named: "play.jpg"), forState: UIControlState.Normal)
} else {
player.play()
playPauseButtonOutlet.setImage(UIImage(named: "pause.jpg"), forState: UIControlState.Normal)
}
}