2012-07-06 2 views
0

아래 코드를 사용하여 사운드를 재생하는 간단한 앱을 성공적으로 만들 수 있습니다. 그러나 문제는 내가 자산을 mp3에서 m4a (aac 인코딩 사용)로 변경 한 경우입니다. 소리가 나지 않지만 컴포지션의 지속 시간은 추가 된 샘플의 길이와 일치합니다.AVMutableCompositon AVMutableCompositionTrack m4a 문제

NSError *error; 

AVMutableComposition* composition = [AVMutableComposition composition]; 
AVURLAsset* audioAsset1 = [[AVURLAsset alloc]initWithURL:[NSURL URLWithString:@"http://www.myserver.com/sample.mp3"] options:nil]; 

AVMutableCompositionTrack *audioTrack1 = [composition addMutableTrackWithMediaType:AVMediaTypeAudio 
                    preferredTrackID:kCMPersistentTrackID_Invalid]; 

[audioTrack1 insertTimeRange:CMTimeRangeMake(kCMTimeZero, audioAsset1.duration) 
        ofTrack:[[audioAsset1 tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] 
         atTime:kCMTimeZero 
         error:&error]; 

NSLog(@"%@", error); 

playerItem = [AVPlayerItem playerItemWithAsset:composition]; 

player = [AVPlayer playerWithPlayerItem:playerItem]; 

[player play]; 

아무도 도와 줄 수 있습니까?

답변

0

나는이 질문을 사방에 게시하고 사과로 버그 보고서를 작성하는 일을 끝냈다.

문제를 해결하는 방법 m4a를 app 임시 디렉토리에 다운로드 한 다음 거기에서 컴포지션에 추가하는 단계가 있습니다. 매력처럼 작동합니다.

내 코드가 어떻게 작동하는지에 대해서는 자세히 설명하지 않겠지 만, 내 응용 프로그램이 인기있는 AFNetworking 라이브러리를 사용하므로 여기에는 핵심적인 부분이 있습니다.

1: AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:songURLRequest]; 
2: NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"song.m4a"]; 
3: operation.outputStream = [NSOutputStream outputStreamToFileAtPath:filePath append:NO]; 

행 1 : 설치 AFHTTPRequestOperation 행 2 : 설치 파일이 3 호선 저장됩니다 문자열로 로컬 경로 : 로컬 경로

희망이에 AFHTTPRequestOperation에서의 OutputStream 설정 미래에 누군가를 돕는다!

관련 문제