作者kiii210 (HelloWorld!)
看板MacDev
標題Re: [問題] 請教關於CollectionView上面的Button。
時間Sat Aug 2 16:59:15 2014
建立一個mp3名稱的array,順序跟你的textView要用的array一樣
-> @[@"song1",@"song2"];
在cellForItemAtIndexPath裏面給每一個button一個編號
-> button.tag = indexPath.row
每個button的selector都是play:
在你的play method裏面
UIButton *button = (UButton *)sender;
int tag = button.tag
再從mp3 array拿檔名出來
NSString *fileName = [mp3Array objectAtIndex:button.tag];
路徑再用pathOfResource建立,最後再用AVAudioPlayer播放
理論上是沒問題,你跑跑看XD
※ 引述《crazyni68 (Arni)》之銘言:
: 各位好,我第一次在本版發文,也是Xcode初學者,如果有表達不好的地方敬請見諒。
: 目前是在StoryBoard拉出UICollectionViewController,CollectionView的cell上有加上
: TextView與Butoon。
: 程式碼上 numberOfItemSection中 回傳我textView要使用的array=>
: return array1.count 與 cellForItemAtIndexPath中 定義cell識別碼,
: 重複使用的cell => dequeueReusableCellWithReuseIdentifier
: Run程式後,也成功的複製出數個cell,當然每個cell上面也都有TextView與Button。
: TextView部分是沒問題(每個cell成功依照array順序顯示內容),主要問題是需要點擊不
: 同的Button會播放各自所屬的mp3檔[第一個cell上的Button播放第1個mp3檔,
: 第2個cell上的Button播放第2個mp3檔...]
: 原本也是想說和TextView一樣用array存mp3檔名稱,然後使用AVAudioPlayer來播放,結
: 果發現路徑上只能放NSString型態,且他好像只能播單首歌
: (pathForResource:@"歌名"ofType@"mp3")
: 是不是要將NSArray轉NSString呢?
: 最後Run完都不成功(卡死,要不然就是點擊Button無反應)
: 那為了能先Run成功,所以我改成執行後每個Cell的Butoon點擊後都只能播放同一首mp3檔
: (AVAudioPlayer這段程式碼是放在CellForItemAtIndex裡面,檔名直接給一個mp3檔)
: 有試過didSelectItemAtIndexPath但可能不太熟也不會使用,打完後失敗也只能默默的把
: 它註解起來XD
: Button部分就是放
: -(IBAction)play:(id)sender
: {
: if (player)
: {
: if (![player isPlaying])
: {
: [player play];
: }
: }
: }
: 如有需要程式碼比較好觀看我再放該.m檔的連結上來。
: 謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.13.72.16
※ 文章網址: http://www.ptt.cc/bbs/MacDev/M.1406969958.A.2BC.html
※ 編輯: kiii210 (163.13.72.16), 08/02/2014 16:59:58
推 crazyni68:謝謝,剛有測試過,不過每個Button還是會放同一首mp3檔 08/02 17:35
→ kiii210:那應該去看看AVAudioPlayer吧 08/02 17:35
→ crazyni68:and tag警告說unuse 所以我改objectAtIndex:tag這樣 08/02 17:35
→ crazyni68:不過還是和上述一樣XDD 08/02 17:36
→ crazyni68:好,我去看看~:D 08/02 17:37
tag那邊只是打太快,直接用button.tag就可以了
AVAudioPlayer剛剛看了一下,想播放不同的聲音檔案,應該是要重新init一次~
※ 編輯: kiii210 (163.13.72.16), 08/02/2014 17:41:51
推 crazyni68:我可以寄站內信(該.m程式)給您嗎?說不定是我自己誤會(打 08/02 17:49
→ crazyni68:錯)程式部分,如果不方便的話沒關係XD 08/02 17:50
→ crazyni68:程式碼部分是存成RTF檔 08/02 17:51