我在本地项目中添加了10个音频文件(1.m4a,2.m4a,...,10.m4a),我将第一部分转换为数据并附加到NSMutableData
然后加载在球员中。工作得很好。
现在我有按钮,onClick按钮我追加3部分音乐文件,但现在正在avaudioplayer
播放。
有谁知道我该怎么做?
func loadFirstnPlay() {
if let url = Bundle.main.url(forResource: "1", withExtension: "m4a"){
if let rawData = NSData(contentsOf: url) {
arrSongsData.append(rawData as Data)
do {
avAudioPlyer = try AVAudioPlayer(data: arrSongsData as Data)
avAudioPlyer.prepareToPlay()
avAudioPlyer.delegate = self
avAudioPlyer.play()
print("Play")
}catch{
print("Error : ",error)
}
}
}
}
onButtonClick
func onButtonClick() {
for i in 2...4{
if let url = Bundle.main.url(forResource: "\(i)", withExtension: "m4a"){
if let rawData = NSData(contentsOf: url) {
arrSongsData.append(rawData as Data)
print("\(i) : ",arrSongsData.length)
}
}
}
}
答案 0 :(得分:0)
如果您想逐个播放音频,那么您也可以AVQueuePlayer
使用AVPlayerItem
。
var arrSongItem:[AVPlayerItem] = []
var avQueuePlayer:AVQueuePlayer!
func loadFirstnPlay() {
for i in 1...10 {
if let url = Bundle.main.url(forResource: "\(i)", withExtension: "m4a"){
let item = AVPlayerItem.init(url: url)
arrSongItem.append(item)
}
}
avQueuePlayer = AVQueuePlayer(items: arrSongItem)
avQueuePlayer.play()
}
您还可以使用AVQueuePlayer
对象插入项目,删除项目和下一个当前项目。