作者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://webptt.com/cn.aspx?n=bbs/MacDev/M.1406969958.A.2BC.html
※ 编辑: kiii210 (163.13.72.16), 08/02/2014 16:59:58
1F:推 crazyni68:谢谢,刚有测试过,不过每个Button还是会放同一首mp3档 08/02 17:35
2F:→ kiii210:那应该去看看AVAudioPlayer吧 08/02 17:35
3F:→ crazyni68:and tag警告说unuse 所以我改objectAtIndex:tag这样 08/02 17:35
4F:→ crazyni68:不过还是和上述一样XDD 08/02 17:36
5F:→ crazyni68:好,我去看看~:D 08/02 17:37
tag那边只是打太快,直接用button.tag就可以了
AVAudioPlayer刚刚看了一下,想播放不同的声音档案,应该是要重新init一次~
※ 编辑: kiii210 (163.13.72.16), 08/02/2014 17:41:51
6F:推 crazyni68:我可以寄站内信(该.m程式)给您吗?说不定是我自己误会(打 08/02 17:49
7F:→ crazyni68:错)程式部分,如果不方便的话没关系XD 08/02 17:50
8F:→ crazyni68:程式码部分是存成RTF档 08/02 17:51