UI基礎(chǔ)-day02-幀動畫-03播放器

UI基礎(chǔ)-day02-幀動畫-01基本實現(xiàn)
UI基礎(chǔ)-day02-幀動畫-02抽取重復(fù)代碼

需求:

  1. 分別已緩沖和非緩沖的方式加載圖片
  2. 實現(xiàn)播放聲音的功能

具體實現(xiàn)

  1. 緩沖和非緩沖


    查看圖片是否有緩沖
1)緩沖問題:
1.什么是緩沖? 資源使用完后,沒有立即清除,而是把資源放入內(nèi)存里,下次直接從內(nèi)存讀取.
2.優(yōu)缺點? 優(yōu)點,讀取速度快. 缺點,占用內(nèi)存,容易'閃崩'.
3.圖片緩沖怎么寫? [UIImage imageNamed:XX]; 只要使用imageNamed方法,系統(tǒng)會自動完成緩沖.
疑問: 圖片不在Assets.xcassets里面,但是還是使用imageNamed方法,是否還是'緩沖'?
經(jīng)測試圖片不在Assets里面,使用imageNamed方法,還是有'緩沖'.(在功能結(jié)束后,memory值不降)
怎么知道當(dāng)前圖片是否采用緩沖? 查看Memory值的變化(如:圖片顯示完后,值有下降,則沒有采用緩沖)

2)圖片不想用'緩沖'的方法,獲取圖片怎么辦?
1.圖片不能放在Assets.xcassets!
因為放在Assets里面的文件,最后會被打包成Assets.car的壓縮文件(無法獲取,圖片的路徑).
只能通過imageNamed方法獲取圖片.
2.不使用imageNamed方法獲取圖片.
3.具體代碼(圖片不放在Assets文件夾里)
[NSBundle mainBundle];//獲取Bundle目錄
[bundle pathForResource:imgName ofType:@"png"];//獲取指定資源路徑
UIImage *img = [UIImage imageWithContentsOfFile:文件路徑];//獲取圖片

結(jié)論:
只要將圖片放入Assets.xcassets里面,就是有緩沖!
(Assets.xcassets里面圖片,只能通過圖片名去加載,蘋果會壓縮圖片,且默認帶有緩存)
只要使用imageNamed方法來讀取文件,就是有緩沖!
  1. 播放音樂
//1) 加載AVFoundation框架
#import <AVFoundation/AVFoundation.h>
@interface ViewController ()
@property (nonatomic, strong) AVPlayer *myPlayer;
// 2) 播放音頻
// 第一種方法, 知道音頻的具體位置
//file:// - 協(xié)議頭(本地),http:// - 協(xié)議頭(網(wǎng)絡(luò)),'/Users'當(dāng)前根目錄/Users
NSURL *url = [[NSURL alloc]initWithString:@"file:///XXXX/dz.mp3"];
self.myPlayer = [[AVPlayer alloc]initWithURL:url];
[self.myPlayer play];

//第二種方法,音頻已經(jīng)打包到"軟件安裝包"里面
//URLForResource:文件名稱, withExtension:文件后綴,不需要'.'.
//subdirectory:在程序包中的哪個子目錄中尋找.如果沒有找到將會返回nil
NSBundle *myBundle = [NSBundle mainBundle];//獲取"軟件包"目錄
NSURL * mp3URL =[myBundle URLForResource:@"dazhao" withExtension:@"mp3"]; //第一種方式
//NSURL * mp3URL = [myBundle URLForResource:@"/dazhao.mp3" withExtension:nil];//第二種方式
self.myPlayer = [[AVPlayer alloc]initWithURL:mp3URL];
[self.myPlayer play];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容