[問題] ios同個按鈕控制播放與暫停

看板MacDev作者 (Game)時間10年前 (2015/02/17 12:17), 編輯推噓2(2010)
留言12則, 6人參與, 最新討論串1/1
小弟開發ios遇到的問題如tile所示, 我用了一個button控制NSTimer去播放音效, 並且在button方法中實作如下, - (IBAction)toClick:(id)sender { AudioServicesPlaySystemSound(metronomeSoundFile);//播放音效 // AudioServicesDisposeSystemSoundID(metronomeSoundFile); //停止音效 } 因此按下按鈕可以播放音效, 但我在想同一個按鈕再次點擊時讓音效停止 由於是新手入門, google下來的結果都看不太懂 .. 似乎可以用UIControlStateSelected但是不知道如何實作, 希望能請前輩開示與指導, 先感謝版上前輩了 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.40.221.168 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1424146628.A.828.html

02/17 12:40, , 1F
你把問題想太複雜了,用個 BOOL 變數就可以做了
02/17 12:40, 1F

02/17 12:42, , 2F
但是我不知道怎麼取得button的布林值 ..
02/17 12:42, 2F

02/17 12:51, , 3F
不需要去取得 button 狀態,自己用一個變數來追蹤現在是在
02/17 12:51, 3F

02/17 12:51, , 4F
播放還是暫停
02/17 12:51, 4F

02/17 15:54, , 5F
設一個變數 記錄狀態 然後按鈕內用if 判斷
02/17 15:54, 5F

02/17 15:55, , 6F
ex if aa==1 {播放 aa =0}
02/17 15:55, 6F

02/17 15:56, , 7F
else if aa == 0 {暫停 aa=1}
02/17 15:56, 7F

02/17 17:52, , 8F
其實這問題也沒那麼簡單, AudioServicesPlaySystemSound
02/17 17:52, 8F

02/17 17:53, , 9F
是 async function, 所以還要寫 callback 才行...
02/17 17:53, 9F

02/17 20:03, , 10F
應該不用設變數吧?直接用[sender isSelected]來判斷目前有
02/17 20:03, 10F

02/17 20:05, , 11F
沒有選到Button,再用setSelected改變這個按鈕目前選取狀態
02/17 20:05, 11F

02/18 02:03, , 12F
U大說的應該才是正解 跟你實作撥放聲音的元件有關係
02/18 02:03, 12F
文章代碼(AID): #1Kui34We (MacDev)
文章代碼(AID): #1Kui34We (MacDev)