iPhone SdK:添加音轨后,AVPlayer不会播放乐曲
将音轨(用AVAudioRecorder录制)添加到合成后,AVPlayer将无法播放。 AVPlayer.status = 1,AVPlayer.error = null。
我看过WWDC10 AVEdit演示代码,它非常相似。它可能是音频格式不兼容吗?
原始作品已经包含来自视频资产的视频和音频曲目。
删除新添加的音轨后,播放器仍然无法播放
删除原始音轨后,播放器将播放。
我也发现很难获得可以指出问题的调试信息。如果有人有任何建议,将不胜感激。
这是我添加音轨的代码
任何帮助都是最受欢迎的
让 - 皮埃尔·
-(void)editAudioViewController:(EditAudioViewController *)editAudioViewController didEditAudio:(NSURL *)url
{
[self dismissModalViewControllerAnimated:TRUE];
BOOL result;
NSError * error = nil;
if (url)
{
AVURLAsset * asset = [AVURLAsset URLAssetWithURL:url options:nil] ;
CMTimeRange audioTimeRange = CMTimeRangeMake(kCMTimeZero , asset.duration);
if (CMTIME_COMPARE_INLINE(CMTimeRangeGetEnd(audioTimeRange), >, [composition duration]))
audioTimeRange.duration = CMTimeSubtract([composition duration], audioTimeRange.start);
AVMutableCompositionTrack *compositionAudioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio
preferredTrackID:kCMPersistentTrackID_Invalid];
AVAssetTrack *audioTrack = [asset compatibleTrackForCompositionTrack:compositionAudioTrack];
result = [compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, audioTimeRange.duration) ofTrack:audioTrack atTime:audioTimeRange.start error:&error];
if (!result)
{
NSLog(@"%@", [error description]);
}
[mp replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithAsset:composition]];
[mp seekToTime:kCMTimeZero];
}
}
没有找到相关结果
已邀请:
1 个回复
敦肌