iOS音樂背景播放功能

  • 1
這陣子在處理iOS背景音樂播放的功能,筆記一下


1.在UIViewController裡加上: 
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
[session setActive:YES error:nil]; 


2.在 info.plist 中加上「required background modes」Key ,  Value 選 App plays audio

3.若想要在螢幕鎖定或是多工列(按兩下Home)控制聲音播放的話,加上
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
[self becomeFirstResponder]; 
關閉加上
[[UIApplication sharedApplication] endReceivingRemoteControlEvents]; 
[self resignFirstResponder];
 設定canBecaomFirstResponder為Yes

- (BOOL)canBecomeFirstResponder {
    NSLog(@"canBecomeFirstResponder");    return YES;}


4. 加控制的事件偵測
-(void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent{
    if (receivedEvent.type == UIEventTypeRemoteControl) {
        switch (receivedEvent.subtype) {
            case UIEventSubtypeRemoteControlTogglePlayPause:                //開始or暫停
                break;
            case UIEventSubtypeRemoteControlPreviousTrack:                //上一首
                break;
            case UIEventSubtypeRemoteControlNextTrack:                //下一頁
                break;
            case UIEventSubtypeRemoteControlBeginSeekingBackward:                //長按後退鍵
                break;
            case UIEventSubtypeRemoteControlEndSeekingBackward:                //長按後退鍵結束
                break;
              //還有其他事件等你自已發掘
            default:
                break;
        }
    }
}

5.可以加上以下這段,改變播放器的曲目資訊與專輯圖片
使用前請先 import MediaPlayer/MediaPlayer.h

- (void)configNowPlayingInfoCenter {
     
    Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
    if (playingInfoCenter) {
      
        MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];      
        // 當前播放歌曲的圖片        MPMediaItemArtwork *artwork = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"Album.png"]];      
        NSDictionary*songInfo = [NSDictionary dictionaryWithObjectsAndKeys:@"專輯名稱", MPMediaItemPropertyArtist,                                 @"專輯標題", MPMediaItemPropertyTitle,
                                 artwork, MPMediaItemPropertyArtwork,
                                 @"專輯介紹", MPMediaItemPropertyAlbumTitle,
                                 nil];
        center.nowPlayingInfo = songInfo;
      
    }
}


6.如果在Cocos2d裡想實現以上的功能,若有用到SimpleAudioEngine,請把以下程式碼插在步驟1.的程式碼之前,目的是讓SimpleAudioEngine暫停,不讓音效的資源佔住。
[SimpleAudioEngine end];

以上,就可以很輕鬆的把這個功能加到應用程式裡面了。




新年快樂2013

  • 0


我又孝年一次了,今年跨年已經不是去人擠人、倒數321這麼麻煩了,而是在家看完電視後,衝去墾丁看日出,超瘋的啦!大家一定會以為我有看到日出,然後一路很順的玩回來!錯了,事情永遠不是想像的那麼簡單,當天實際的情形事…(遠望)
我們5個人一台車,瘋瘋顛顛的從台南往墾丁出發,途中一切都很順利,到了墾丁後,發現也滿多人跟我們一樣瘋瘋顛顛的準備去看日出。好吧,人多就要排隊上接駁車,當然,我們也很順利的坐上接駁車上山前往龍磐公園,從鵝鑾鼻公園出發大約5分鐘的車程,很快就到了,到了公園後,也很順利的搶到了心目中的好位置、架好架腳,坐在地上等待2013年的第一道曙光,雖然當時的風超大,溫度有點低,但依然不減我們的興致。
時間接近太陽升起的時間,約莫6:10,天空漸漸的亮起,我也把相機準備好迎接聖光。眼看時間快到了,就在此時,所有的群眾突然開始往另一個方向移動,咦?不是會在我們正前方升起嗎?怎麼太陽會臨時決定從另一個地方升起,情報錯誤,剛剛的位置都白佔了,只好趕緊剛著跑到太陽的方向,繼續等待聖光的到來。
已經6:30分了,就在主持人倒數完5 4 3 2 1…的同時,我的心情也跟著down到了谷底,馬的B,雲層厚的跟棉花糖一樣,看得到太陽才有鬼咧,這時我的心情又浮現了另一個念頭,為何我現在在這裡吹風當傻子,決定在家睡覺不是更好嗎。俗話說的好,既有的事實改變不了,就改變自已的心境去接受它吧(其實心裡還是很嘟爛…),就走出去坐接駁車下山吧!
好了,故事講到這邊,從看不到日出開始,一連串的惡夢要來了。
人人人、人人人,那來這麼多人啊!要走10分鐘才走到開始排隊的地方,一行人決定,走下山…拖著疲備的身軀和扁扁的巴豆,走了1個小時,終於走到山下停車的地方。耶…終於可以坐車開始接下來的行程了,雖然沒看到日出,但至少來了墾丁,就暫時把聖光沒出現的事實擺一邊吧,開始今天的旅程囉!
碰…關好車門…發發發發發、發發發發發、發發發發發不動…怎麼發就是發不動,挫賽,車壞了發不起來,拎老師卡好咧,這三小朋友,日出沒看到就算了,車子也發不動,這三小朋友啦!無奈,只好找師傅來修了,幸好當時是已經是八點多了,找到當地的保養廠看了之後,說要拖回保養廠才能修,拖就拖吧,該修的也是要修,不然也回不了台南,就這樣,車修好後,時間也到了下午的1點。耶…沒錯,是1點,有夠餓的啦,過程中,我們只吃了一個簡單的漢堡跟紅茶,也斷斷續續的在等待的時間中補眠。
當時,在既定的行程中安排了去東港吃海產,所以當車一修好就立馬衝去東港,來吃個海鮮大餐,給它好好補充一下體力,至少讓這次的行程有夠漂亮的Ending。但真的事與願違,到了海產店後,被告知說,店家下午休息!.........拎老師咧…翻桌,又泡湯了。

最後,一群人帶著睡不飽、吃不到、沒看到的心情回到了台南。

下個結論,2013年的1月1日不適合出遊,適合在家睡著,但我卻跑了出去,享受了這一切的帶賽之旅。

開店與創業的理念

  • 0

創業就好像開店,目的都是去滿足顧客的需求,這中間,就要不斷的去調整你的產品以符合你的顧客,讓它成為一個循環,變成一門生意。

為什麼會突然打這些,因為最近我一個高中同學開店,在開幕的第二個禮拜,我就去找他一起聊聊天,畢竟當高中同學開店,這是我人生中的頭一遭,就像你出社會後,第一次聽到你的同學要結婚了的那樣驚訝。

在跟他聊天的過程,發現開店和創業是一樣的,都是在「解決問題」;嗯,還沒說我同學開什麼店,他開的是冰品店,裡面除了冰還有賣熱食類商品,當然賣什麼產品不是重點,重點在於他在當老闆的過程裡,我看到他必須要去「想」目前遇到什麼問題,該怎樣「解決」它。譬如,如何提升店的名氣?食物是否符合客人口味?剩下的沒賣出的食物該如何處置?…

於是在這過程中我發現了一個重點…「試」。除了試,還是試,一直試到多數顧客滿意的口味,一直試到店的名聲提高了,一直試到你心目中理想的方法。就跟創業一樣,很多產品你不做出來,不丟到市場上去受考驗,是不知道產品是不是符合使用者需求,或解決使用者的問題,所以你能做的就是試,然後逐步修正,即使不論是吃的、喝的、用的,公司的產品都要經歷過一個產品循環修正的過程,只是得到回應的速度快或慢之別了。

小蝦蝦並不想戰大鯨鯨,只是想做好服務

  • 0


新舊事物難免有衝突,遵尋讓用戶使用好的服務原則下,就可以讓創新服務繼續活下去。不過社會的底下是由人組成的,是人,就難免為了自已的利益而損害別人的利益,而無視於好的原則,變成大吃小,食物鏈的慘忍事件。


讓我們轉換到音樂這個領域,從過去的網路服務歷史來看,它一直都和網路科技有衝突,問題大多是 利益 版權所產生,如果當初沒有ezpeer的初試啼聲(結果是當時唱片業群起踏伐),也不會有後來收費的KKBOX和ezpeer,背後若沒有足夠的資源當後盾,來面對未來種種法律或版權等問題的話,小蝦米實在很難戰勝大鯨魚。

Now.in事件可以看出台灣的創業環境還有許多進步的空間,否則未來即使有更好的創新服務,開發者寫完程式後,要開始擔心某天會不會有陌生人到你房間命令你把服務關閉。再從創新服務的角度來看,音樂開始往社群和分享機制前進,KKBox和ezpeer音樂串流服務是否已經不能滿足社群和分享的需求了呢?這或許是另一個商機,就有待另個心臟大的創新者來開拓。




Now.in 創辦人 Victor 曾經,我有個夢想….
MR Jamie  YouTube、土豆網與 Now.in 的不同



讓自已休息一下

  • 0
來杯星巴克,偶爾享受一下悠閒的星期六下午,接下來一個星期都可以有滿滿的活力!

在店裡,看著店外的行人和路上的車,想起自已過去一個星期也是這麼忙著,除了為別人努力工作之外,當一下自已的主人,也給自已的身體和心靈慰勞一下。休息,是為了走更長遠的路,停下來,順便想想未來走的路是否正確,休息才有意義,否則,只是瞎忙。

當你生活開始變的無趣時,就試著用別人的角度,去體驗他幾個小時的生活,或許,你可以得到新的靈感,充實自已漸漸空虛的靈魂,同樣一天都是24小時再過,有人可以過的很精彩,有人卻虛度光陰,你呢?是那一種?

北海道蜜月

照片中的地點是北海道的小樽運河,也是我們去渡蜜月的地方。

北國真的好美呀,整片白茫茫的雪和零下的低溫,超適合新婚夫妻去渡蜜月的。

結婚之前,原本是想去大阪跟東京,跟本沒想說要到北海道渡蜜月,後來經友人的建議,推薦說北海道也不錯,然後再自已看看行程,真的覺得也不錯,安排好時間就去囉!

相簿裡還有很多照片,想看的可以點進去看看。期待下去再去大阪跟東京啦…

Google+相簿 : 北海道蜜月之旅
https://plus.google.com/photos/112880147482818240911/albums/5695141113121826833

喜喜

終於到了緊張的時刻,參加許多次的婚宴,這次的主人輪到我了,真的有種很妙的感覺。看著桌上的謝卡和舞台上螢幕播放的影片,似乎也透過這種方式來加深了我"真的結婚"的潛意識,告訴我,讓我知道,我有個家庭了,我終於從父母親的手上長大成人,要開始獨立過自已的生活了。

結婚,真的要有這些煩雜的過程,才會讓你記在心裡一輩子也不會忘,過程中,很辛苦,但結果很甜蜜!尤其看到許多認識和不認識的人給你祝福,那種甜甜的感覺,是經歷過的人才懂的。