iOS 로 컬 오디 오 파일 가 져 오기(속성/정보)
로 컬 오디 오 파일 주소 가 져 오기:
NSString *songsDirectory=MUSIC_FILE_ALL;//
NSBundle *songBundle=[NSBundle bundleWithPath:songsDirectory];
NSString *bundlePath=[songBundle resourcePath];
NSArray *arrMp3=[NSBundle pathsForResourcesOfType:@"mp3" inDirectory:bundlePath];
for (NSString *filePath in arrMp3) {
[self.wMp3URL addObject:filePath];
}
오디 오 파일 속성 분석:
-(void)mDefineUpControl{
NSString *filePath = [self.wMp3URL objectAtIndex: 0 ];// ,
// ,
NSFileManager *fm = [NSFileManager defaultManager];
NSDictionary *dictAtt = [fm attributesOfItemAtPath:filePath error:nil];
//
NSURL *fileURL=[NSURL fileURLWithPath:filePath];
AVURLAsset *mp3Asset=[AVURLAsset URLAssetWithURL:fileURL options:nil];
NSString *singer;//
NSString *song;//
UIImage *image;//
NSString *albumName;//
NSString *fileSize;//
NSString *voiceStyle;//
NSString *fileStyle;//
NSString *creatDate;//
NSString *savePath; //
for (NSString *format in [mp3Asset availableMetadataFormats]) {
for (AVMetadataItem *metadataItem in [mp3Asset metadataForFormat:format]) {
if([metadataItem.commonKey isEqualToString:@"title"]){
song = (NSString *)metadataItem.value;//
}else if ([metadataItem.commonKey isEqualToString:@"artist"]){
singer = (NSString *)metadataItem.value;//
}
//
else if ([metadataItem.commonKey isEqualToString:@"albumName"])
{
albumName = (NSString *)metadataItem.value;
}else if ([metadataItem.commonKey isEqualToString:@"artwork"]) {
NSDictionary *dict=(NSDictionary *)metadataItem.value;
NSData *data=[dict objectForKey:@"data"];
image=[UIImage imageWithData:data];//
}
}
}
savePath = filePath;
float tempFlo = [[dictAtt objectForKey:@"NSFileSize"] floatValue]/(1024*1024);
fileSize = [NSString stringWithFormat:@"%.2fMB",[[dictAtt objectForKey:@"NSFileSize"] floatValue]/(1024*1024)];
NSString *tempStrr = [NSString stringWithFormat:@"%@", [dictAtt objectForKey:@"NSFileCreationDate"]] ;
creatDate = [tempStrr substringToIndex:19];
fileStyle = [filePath substringFromIndex:[filePath length]-3];
if(tempFlo <= 2){
voiceStyle = @" ";
}else if(tempFlo > 2 && tempFlo <= 5){
voiceStyle = @" ";
}else if(tempFlo > 5 && tempFlo < 10){
voiceStyle = @" ";
}else if(tempFlo > 10){
voiceStyle = @" ";
}
NSArray *tempArr = [[NSArray alloc] initWithObjects:@" :",@" :",@" :",@" :",@" :",@" :",@" :",@" :", nil nil];
NSArray *tempArrInfo = [[NSArray alloc] initWithObjects:singer,song,albumName,fileSize,voiceStyle,fileStyle,creatDate,savePath, nil nil];
for(int i = 0;i < [tempArr count]; i ++){
NSString *strTitle = [tempArr objectAtIndex:i];
UILabel *titleLab = [[UILabel alloc] initWithFrame:CGRectMake(5, 5+i*30, 16*[strTitle length], 25)];
[titleLab setText:strTitle];
[titleLab setTextColor:[WASharedFontStyle mGetSharedFontColor]];
[titleLab setFont:[UIFont systemFontOfSize:16]];
[self.wInfoSV addSubview:titleLab];
NSString *strInfo = [tempArrInfo objectAtIndex:i];
UILabel *infoLab = [[UILabel alloc] initWithFrame:CGRectMake(titleLab.frame.origin.x+titleLab.bounds.size.width+5, 5+i*30, self.view.bounds.size.width-(titleLab.frame.origin.x+titleLab.bounds.size.width+5)-5, 25)];
[infoLab setText:strInfo];
[infoLab setTextColor:[WASharedFontStyle mGetSharedFontColor]];
[infoLab setFont:[UIFont systemFontOfSize:16]];
[self.wInfoSV addSubview:infoLab];
if(i == [tempArr count]-1){
[infoLab setFrame:CGRectMake(titleLab.frame.origin.x+titleLab.bounds.size.width+5, 5+i*30, self.view.bounds.size.width-(titleLab.frame.origin.x+titleLab.bounds.size.width+5)-5, 30*4)];
[infoLab setLineBreakMode:NSLineBreakByWordWrapping];
[infoLab setFont:[UIFont systemFontOfSize:12]];
[infoLab setNumberOfLines:0];
}
[self.wInfoSV setContentSize:CGSizeMake(self.view.bounds.size.width, i*45)];
}
}
부도:이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
View의 레이아웃 방법을 AutoLayout에서 따뜻한 손 계산으로 하면 성능이 9.26배로 된 이야기이 기사는 의 15 일째 기사입니다. 어제는 에서 이었습니다. 손 계산을 권하는 의도는 없고, 특수한 상황하에서 계측한 내용입니다 화면 높이의 10 배 정도의 contentView가있는 UIScrollView 레이아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.