【发布时间】:2017-12-24 17:45:39
【问题描述】:
基本上,我正在尝试构建一个音乐播放器应用程序来学习 iOS 平台和 Swift 3,但我目前停留在一个简单的步骤上。我正在尝试创建一个歌曲类型的数组,并将歌曲名称、歌曲艺术家等附加到该数组中。
该功能也需要修改。我之前使用它与一组名称,但之后我决定创建这个结构。
import Foundation
struct Song {
var _songTitle:String?
var _songArtist:String?
var _songDuration:Double?
var _songCover:String?
}
import AVFoundation
类 AudioManager: NSObject, AVAudioPlayerDelegate {
static let sharedInstance = AudioManager()
var currentSong = 0
var currentTime = 0
var player: AVAudioPlayer = AVAudioPlayer()
private override init() {}
private var songs: [Song] = []
func play()
{
player.play()
}
func stop() {
if player.isPlaying{
player.stop()
}
}
func playThis()
{
do
{
guard let audioPath = Bundle.main.path(forResource: songs._songTitle?[currentSong], ofType: ".mp3")
else {
return
}
try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath) as URL)
}
catch
{
print ("ERROR")
}
}
func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool)
{
if flag {
currentSong += 1
}
if ((currentSong + 1) == songs.count) {
currentSong = 0
}
}
func skipForward() {
var timeToSkip: TimeInterval = player.currentTime
timeToSkip += 5.0
player.currentTime = timeToSkip
}
func skipBack() {
var timeToSkip: TimeInterval = player.currentTime
timeToSkip -= 5.0
player.currentTime = timeToSkip
}
func gettingSongNames()
{
let folderURL = URL(fileURLWithPath:Bundle.main.resourcePath!)
do
{
let songPath = try FileManager.default.contentsOfDirectory(at: folderURL, includingPropertiesForKeys: nil, options: .skipsHiddenFiles)
//loop through the found urls
for song in songPath
{
var mySong = song.absoluteString
if mySong.contains(".mp3")
{
let findString = mySong.components(separatedBy: "/")
mySong = findString[findString.count-1]
mySong = mySong.replacingOccurrences(of: "%20", with: " ")
mySong = mySong.replacingOccurrences(of: ".mp3", with: "")
song._songTitle.append(mySong)
}
}
}
catch
{
print ("ERROR")
}
}
}
【问题讨论】:
-
请包含所有有问题的相关代码并且不要链接它,特别是不要作为屏幕截图。另外,你的问题是什么?
-
按照教程进行操作,否则对您来说会很困难。
-
我害怕你的问题。
-
因此,如果这是一个类,我可以通过 class.variable 访问变量名并将字符串附加到那里,但是使用 struct 则无法正常工作。如何更新方法,以便我可以在每个字符串(歌曲名称)中附加歌曲数组?