2013-07-10 55 views
0

我是一名新開發人員,我正在掌握iOS中的音頻。如何使用媒體選擇器進行設置?

這將是棘手的解釋,但我會給它一個去。我正在使用媒體選擇器,以便用戶可以從其庫中選擇一首歌曲。我不希望有一個隊列或立即播放。相反,我希望它出現在桌面視圖中,並且當用戶在表格視圖中選擇該歌曲時,它將在另一視圖中按下按鈕時播放該歌曲。

所以基本上,我希望用戶能夠從他們的庫中選擇一首歌曲,並將其添加到列表中。然後,他們可以從該列表中選擇一首歌曲,並在按下按鈕時播放該歌曲。

如果有幫助,這是我使用的媒體選擇和播放音頻編碼(他們實際上並沒有相互連接):

媒體選擇:

MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeAnyAudio]; 

     [mediaPicker setDelegate:self]; 
     [mediaPicker setAllowsPickingMultipleItems:NO]; 

     mediaPicker.prompt = NSLocalizedString(@"text1", "text2"); 

     [self presentViewController:mediaPicker animated:YES completion:nil]; 

播放音頻:

if (self.panicButtonPressed == NO) { 
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
            pathForResource:@"Alarm 1" 
            ofType:@"mp3"]]; 
alarmSound = [[AVAudioPlayer alloc] 
       initWithContentsOfURL:url 
       error:nil]; 
    [alarmSound play]; 
self.panicButtonPressed = YES; 
} 

任何幫助將不勝感激。

回答

0

獲得文件URL後,您可以使用它來訪問文件元數據(標題,藝術家等)。然後,您可以使用此數據和URL填充表格。

+0

感謝您的回答。你能否詳細說明我是如何做到的?我想我會使用' - (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection'方法,但我不知道該放什麼。它是否包含這樣的內容:'NSURL * url = [[mediaItemCollection.items objectAtIndex:0] valueForProperty:MPMediaItemPropertyAssetURL];' –

+0

如果您希望'pick'歌曲出現在表格視圖中,那麼我認爲最簡單的事情是做會存儲一個引用,他們在NSArray中選擇什麼,然後在你的'tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath'方法中傳遞文件元數據和URL。除了Apple文檔外,您還可以查看UITableViewController的簡要概述:http://blog.teamtreehouse.com/introduction-to-the-ios-uitableviewcontroller – Nick

+0

對不起,我的遲到回覆。感謝您的幫助,我將如何將「採摘」歌曲存儲在NSArray中。我只知道如何將字符串存儲在NSArray'self.booksArray = [NSArray arrayWithObjects:@「勇敢的新世界」中。我明白你在說什麼,但我不確定如何實現目標。我已經嘗試閱讀Apple Docs,但我仍然試圖理解它。我看了一下你包含的鏈接。 –