- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
所以我想使用它的 url 使用 MPMusicPlayer
播放歌曲。我已经能够将音乐信息从 MPMediaCollection
填充到 UITableView
。我想要做的是,当我点击 tableview
行时,它会播放 tableview
行中具有相同标题的歌曲。
这是我如何填充音乐信息的代码
func mediaPicker(mediaPicker: MPMediaPickerController!,
didPickMediaItems mediaItemCollection: MPMediaItemCollection!){
for thisItem in mediaItemCollection!.items as! [MPMediaItem]{
var mediaitem = mediaItemCollection!.items
playlistItem = ["music" : mediaitem]
playlistItemArray.addObject(playlistItem!)
let itemUrl = thisItem.valueForProperty(MPMediaItemPropertyAssetURL)
as? NSURL
let itemTitle =
thisItem.valueForProperty(MPMediaItemPropertyTitle)
as? String
let itemArtist =
thisItem.valueForProperty(MPMediaItemPropertyArtist)
as? String
var itemArtwork: AnyObject! = thisItem.valueForProperty(MPMediaItemPropertyArtwork)
if (itemArtwork != nil) {
var listArtwork = itemArtwork.imageWithSize(CGSizeMake (198, 198))
var listArtworkData = UIImagePNGRepresentation(listArtwork)
playlistArtwork = ["picture" : listArtworkData]
playlistArtworkImage.addObject(playlistArtwork!)
}else{
var listNulArtwork = UIImage(named: "noArtworkImage.png")
var listNulArtworkData = UIImagePNGRepresentation(listNulArtwork)
playlistArtwork = ["picture" : listNulArtworkData]
playlistArtworkImage.addObject(playlistArtwork!)
}
playlist = ["title" : itemTitle! , "artist" : itemArtist! , "songUrl" : itemUrl!]
playlistArray.addObject(playlist!)
}
}
这是代码,我如何将数据填充到 tableview
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("playlistCell", forIndexPath: indexPath) as! UITableViewCell
let object = User.playList[indexPath.row] as! NSDictionary
let artworkObject = User.playlistArt[indexPath.row] as! NSDictionary
let base64String = artworkObject["picture"]!.base64EncodedStringWithOptions(.allZeros)
let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))
var decodedimage = UIImage(data: decodedData!)
(cell.contentView.viewWithTag(1) as! UIImageView).image = decodedimage
//(cell.contentView.viewWithTag(1) as! UIImageView).image = image.timelinecircleMask
(cell.contentView.viewWithTag(2) as! UILabel).text = object["title"] as? String
(cell.contentView.viewWithTag(3) as! UILabel).text = object["artist"] as? String
return cell
}
这是我的播放列表表格 View 的屏幕截图
我从 MPMediaCollection 得到的是 mpmediaitem 和歌曲信息(标题、艺术家、url)的字典
点击 uitableview
行时如何播放歌曲?
最佳答案
所以,是的,我已经自己解决了这个问题。其实很简单
我做的第一件事是:
declare MPMediaItemcollection as a global variable(put in a struct)
然后:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: false)
var mediaItemCollection = User.mdci
MPMusicPlayerController().nowPlayingItem = mediaItemCollection!.items[indexPath.row] as! MPMediaItem
MPMusicPlayerController().play()
getPlayingSongInfo()
}
就这样
关于ios - 如何在 MPMusicplayerController 上播放歌曲 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521266/
我有一个带有音乐播放器的 iOS7 应用程序。 我正在使用以下代码检查 MPMusicPlayerController 的播放状态更改以更新 UI。 更准确地说,我在播放和暂停之间切换播放按钮的外观。
我已经实现了 MPMusicPlayerController 来播放库中的音乐。当应用程序进入后台时,我将其暂停,当它返回前台时,我希望它恢复。它停顿得很好,但又从头开始。代码如下... AppDel
如何使用 MPMusicPlayerController 播放与应用程序捆绑的歌曲文件? 我尝试过的代码, NSString *url = [[NSBundle mainBundle] pathFor
我正在使用媒体播放器框架来访问 iPhone 上用户的音乐库。例如,我想设置播放起始位置,以便可以从 30 秒标记开始播放歌曲。 我很难找到如何做到这一点。 MPMediaPlayerControll
我在我的应用程序中使用 MPMusicPlayerController。我正在使用方法“setQueueWithItemCollection”设置队列。我可以播放歌曲、转到上一首/下一首歌曲等。但是我
嗨, 有什么方法可以调整 MPMusicPlayerController 播放歌曲的速度吗? 我到处搜索过,但没有找到任何有用的东西。如果没有办法做到这一点,我在哪里可以找到与其他组件一起使用的示例?
我想知道当 MPMusicPlayerController 中的歌曲发生变化时你会更新 UI。例如,如果您有一个带有专辑封面的 ImageView ,但用户按下了跳过按钮,您将如何使用新的专辑封面更新
我的 MPMusicPlayerController 有一些问题。它是一个 iPodMusicPlayer,而不是一个 appmusicplayer。我的问题是我无法让队列以正确的顺序播放。让我进一步
在我的测试中,似乎通过 MPMusicPlayerController 播放 MPMediaItem 不会更新播放计数(使用 iPod 或应用程序实例) 谁能证实这一点?我也没有在文档中看到任何内容。
我正在开发一个应用程序,用于监听 MPMusicPlayerController 的歌曲变化。 为此,我添加以下观察者: NotificationCenter.default .addObse
希望这个问题不会被否决 - 我在文档中没有看到任何内容。 我想在应用程序处于后台时播放 iPod 库中的音乐。 我正在使用默认机制创建音乐播放器。 -(void)viewWillAppear:(BOO
我想用 MPMusicPlayerController 播放音乐。 MPMediaItem * mediaItem = []; MPMediaItemCollection *songs; NSArra
我正在使用 MPMusicPlayerController 播放 Apple Music 中的歌曲。我定期(每隔几秒)使用更改歌曲队列 setQueue(带有:MPMusicPlayerStoreQu
是否可以在应用程序处于后台状态时开始播放“MPMusicPlayerController”?我有一个闹钟应用程序,我想在闹钟响起且该应用程序不在前台时开始播放音乐。 最佳答案 转到项目属性 -> 功能
我已经在应用程序中实现了 MPMusicPlayerController 播放歌曲功能。一切正常,但第一次启动该应用程序时无法正常工作。第二次开始时,它运行得非常好。 我的理解是 setNowPlay
我正在尝试使用 MPMusicPlayerController 播放 Apple 音乐歌曲,但我无法使用锁定屏幕控件。似乎 MPMusicPlayerController 覆盖了 remoteCont
我希望 MPMusicPlayerController.applicationMusicPlayer() 实例从特定的开始时间开始播放: applicationMusicPlayer.setQueue
我正在开发一个播放实时 HTTP 网络广播流(.pls、.mp3 ...)的应用程序。我可以使用 MPMusicPlayerController 播放流吗?塔克斯。 最佳答案 我认为您不能使用 MPM
我正在开发一个音乐播放器应用程序。我有一个 tableView,其中包含 ipod 库的歌曲名称。我的问题是,当我选择一个单元格时,它会播放一首特定的歌曲,但是当该歌曲完成时它不会自动跳到下一个项目。
MPMusicPlayerController 给我属性 nowPlayingItem,但我也对上一首和下一首歌曲感兴趣。 有什么方法可以用下一个和上一个元素检索 MPMediaItem? 最佳答案
我是一名优秀的程序员,十分优秀!