如何在 iOS 中从 UITableView 播放选定的媒体项?
Posted
技术标签:
【中文标题】如何在 iOS 中从 UITableView 播放选定的媒体项?【英文标题】:How to play selected Media Item from UITableView in iOS? 【发布时间】:2013-01-01 10:49:10 【问题描述】:我正在尝试在 ios 中播放从UITableView
中选择的Media Item
。
我正在使用MediaQuery
,并从我的UITableView
的iPod 库中加载了歌曲列表。
但我不知道如何播放来自UITableView
的选定歌曲。
我知道非常基本的简单 AudioPlayer 以及以下代码。
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource: @"sample"
ofType: @"mp3"];
NSURL *fileURL = [[[NSURL alloc] initFileURLWithPath: soundFilePath] autorelease];
self.player = [[[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error: nil]
autorelease];
用于ContentOfURL
,已位于资源中。无需从 iPod 库中检索歌曲。
这是我的 CellForRowAtIndexPath 方法代码
MPMediaItemCollection *songs = [self.arrayOfSongs objectAtIndex:indexPath.row];
cell.textLabel.text = [songs.items[0] valueForProperty:MPMediaItemPropertyTitle];
现在我正在尝试使用 MediaQuery 播放从 iPod 库中检索到的歌曲以及从 UITableView
中选择的歌曲
那么我怎样才能从UITableView
中选择的 iPod 库中检索 URL 并播放歌曲?
感谢您的阅读。
【问题讨论】:
没人回答我的问题吗? 请在 indexpath 方法中发布你的 cell for row,你需要在 indexpath 方法中实现 didselect 行 是的,我也想知道代码应该写在 didselectedrow 方法中。如何播放选定的歌曲? 【参考方案1】:你需要像下面的代码那样实现你的didSelectRowAtIndexPath
:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
MPMediaItemCollection *songs = [self.arrayOfSongs objectAtIndex:indexPath.row];
MPMediaItem *item = [songs representativeItem];
self.player = [[[AVAudioPlayer alloc] initWithContentsOfURL:[item valueForProperty:MPMediaItemPropertyAssetURL] error: nil]
autorelease];
【讨论】:
以上是关于如何在 iOS 中从 UITableView 播放选定的媒体项?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift 中从 uitableview 转到 uitextview 并使用 nsattributedtext 属性
如何在 Swift 中从 Core Data 中删除数据时删除 UITableView 行?