iOS App與iTunes文件傳輸的方法和對iOS App文件結構的說明


轉:http://www.xiaoyaoli.com/?p=368

就像很多iOS上面的播放器App一樣,本文編寫一個程序可以通過iTunes往里面放文件,比如編寫一個音樂播放器程序,通過itune往里面放歌曲文件,然后通過這個App來播放這首歌曲,首先我創建了一個普通的SingleView程序,叫做FileShareDemo。下面是通過iTunes往App傳輸文件的截圖:

 

 

可以看到像GPlayer,AcePlayer播放器,視頻資源通過這種方式傳輸是很普遍的(很多蘋果用戶確實不知道這樣可以傳輸數據),這里我創建了一個App叫做FileShareDemo,可以看到,也可以往里面拖拽數據,這里拖拽了一首歌2.mp3,但是默認情況下創建的App是不可以出現在左邊欄的,需要按下圖在plist里面加一行:

 

接下來的工作是判斷有沒有導入進去,下面的代碼我寫在了viewdidload里:

 NSFileManager *manager=[NSFileManager defaultManager];

NSString *path=[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@”2.mp3″];

if ([manager fileExistsAtPath:path]) {

showLabel.text=@”have file”;

}else {

showLabel.text=@”have no file”;

}

NSLog(@”NSHomeDirectory %@”,NSHomeDirectory());

 這里有幾點要說明,首先NSHomeDirectory()打印出來是

 

/var/mobile/Applications/8F01293C-C02D-4EF8-A9F7-1A7B10944F33

這個是程序的路徑,8F01293C-C02D-4EF8-A9F7-1A7B10944F33是每個App獨特的標記,比如憤怒的小鳥會是另一串信息,具體干嘛的不清楚。然后我在后面添加了/Documents和/2.mp3,通過[manager fileExistsAtPath:path]來判斷這個路徑存不存在,用一個label打印出來。如果拖拽進去了可以看到label的內容是“have file”,通過程序運行的label信息可以看到/var/mobile/Applications/8F01293C-C02D-4EF8-A9F7-1A7B10944F33/Documents/2.mp3就是導入的文件的路徑。

之后我們可以通過這段代碼來播放歌曲:

 NSError* err;

player = [[AVAudioPlayer alloc]

initWithContentsOfURL:[NSURL fileURLWithPath:path]

error:&err ];

player.volume=0.7;

[player play];

之前的path直接在這里可以用。

下面再次補充一下文件的結構問題:

 

每個程序都會包含這幾個文件,Documents就是iTunes導入的文稿存儲的地方,FileShareDemo是Xcode項目包,如果通過Xcode往項目里放素材什么的都在這里,后兩個不知道有什么具體作用。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM