2014-01-14 2 views
0

배열의 오디오 수를 저장하고 배열 인덱스 수에 따라 임의의 오디오를 재생하려고합니다. 하나의 질문이 있습니다. 각 요소마다 경로를 변경해야합니까? 예 : 배열에 저장할 때 경로 이름을 변경하십시오.

NSURL *audioFileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingString:@"audioRecording.m4a"]]; 

후마다, I는 기록이 경로에 저장 어레이의 요소로의 경로를 저장한다. 내 배열의 모든 요소가 동일하다는 것을 의미합니까? 즉, 배열의 색인을 변경하더라도 동일한 오디오를들을 수 있습니까? 내가 배열의 요소를 읽으려고 여기

- (IBAction)AudioRecord:(id)sender { 
[self.AudioRecorder record]; 
[self.timer invalidate]; 
[self.AudioProgress setHidden:YES]; 


NSURL *audioFileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingString:@"audioRecording.m4a"]]; 
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileURL error:nil]; 

NSUserDefaults *audioDefaults= [NSUserDefaults standardUserDefaults]; 
[audioDefaults setURL:audioFileURL forKey:@"saveAudio"]; 
[audioDefaults synchronize]; 

NSUserDefaults *defaultsAudio=[NSUserDefaults standardUserDefaults]; 
NSUserDefaults *defaultsForArrayA =[NSUserDefaults standardUserDefaults]; 
NSMutableArray *AudioArray =[[defaultsForArrayA arrayForKey:@"myAudio"] mutableCopy]; 
if (!AudioArray) { 
    AudioArray =[[NSMutableArray alloc]init]; 
} 

NSString *Audiopath=[audioFileURL path]; 
[AudioArray addObject:Audiopath]; 
defaultsAudio=defaultsForArrayA; 
[defaultsAudio setObject:AudioArray forKey:@"myAudio"]; 
[defaultsAudio synchronize]; } 

과 : 여기

더 나은 explanasion에 대한 코드이 코드에 따르면

- (IBAction)PlayAudio:(id)sender { 
NSUserDefaults *audioDefaults= [NSUserDefaults standardUserDefaults]; 
audioArray2 =[[audioDefaults arrayForKey:@"myAudio"] mutableCopy]; 
audioPath=[audioArray2 objectAtIndex:index]; 
loadAudio= [NSURL URLWithString:[audioPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

AVAudioPlayer *AvAudioPlayer= [[AVAudioPlayer alloc] initWithContentsOfURL:loadAudio error: nil]; 
[self setAudioPlayer:AvAudioPlayer ]; 

[self.AudioPlayer play]; 
self.timer = [NSTimer scheduledTimerWithTimeInterval:0.25 
               target:self 
              selector:@selector(updateProgress) 
              userInfo:nil 
              repeats:YES]; 
[self.AudioProgress setHidden:NO]; } 

을, 모든 경로가 있습니다 동일하고 모든 요소에서 동일한 오디오를 들었습니다. index0 또는 1을 읽었는지 여부는 동일한 요소입니다! 그리고 내가

:(도움이 할 노력하고있어 아니에요?

답변

0

당신이 다음 방금 그래서 그래, 모든 트랙. 같은 파일을 매번 덮어 쓰는 저장할 때 이름을 변경하지 않으면

오디오를 저장하고 타임 스탬프 또는 UUID를 파일 이름으로 사용하는 사용자 지정 폴더를 만드는 것이 좋습니다

관련 문제