arrays - 展开可选值时发现 nil(音乐库)

标签 arrays swift audio-player optional-values

var songList = NSMutableArray()
var player = AVPlayer()
var isSelected = false

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.



    var songs = MPMediaQuery() // also tried var songs = MPMediaQuery.songsQuery()
    var localSongs: NSArray = songs.items
    songList = NSMutableArray(array: localSongs)

    tableView.reloadData()

    var song: MPMediaItem = songList[0] as MPMediaItem // <<- Error here

    var currentItem = AVPlayerItem(URL: song.valueForProperty(MPMediaItemPropertyAssetURL) as NSURL)

    player.replaceCurrentItemWithPlayerItem(currentItem)

    player.play()

    var songTitle: NSString = song.valueForProperty(MPMediaItemPropertyTitle) as NSString

    songName.text = songTitle 

    var time = Float(CMTimeGetSeconds(player.currentItem.duration))
    sliderOutlet.value = time




}

我正在构建一个音乐播放器,但是当我在模拟器中运行时应用程序崩溃并给出了这个错误:index 0 beyond bounds for empty array,当我尝试在 iPhone 上运行时说这个:{

MediaLibrary} Database validation succeeded
fatal error: unexpectedly found nil while unwrapping an Optional value

编辑:似乎它没有访问我的 iPhone 上的本地音乐库并将歌曲添加到阵列。

最佳答案

您正在访问一个元素而没有测试它的大小。所以 songList[0] 越界,因此崩溃。

关于arrays - 展开可选值时发现 nil(音乐库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25896871/

相关文章:

c - strcat 错误

java-多数组初始化

javascript - 如何从对象中获取对象数组(不是值,不是字符串,不仅是键)?

json - Realm +数据重复

android - 使用 Android Studio 的音乐播放器搜索栏

Java MP3Player 通过使用 Javazoom 播放和暂停

javascript - 如何更新本地存储阵列

ios - 如何在不使其成为iOS前台的情况下进行应用调用?

ios - 在 View Controller 之间平移(而不是滑动)

c - 从文件读取到 C 中的结构