ios - AVPlayer 使用 AVMutableComposition 不会随机发出声音
问题描述
我使用 Objective-C 开发了 iOS 音乐播放应用程序。但是,有时 AVPlayer 使用 AVMutableComposition 不会随机发出声音。
这里没有声音问题代码
MPMediaItem* mediaItem = [songObj mediaItem];
NSURL* assetUrl = [mediaItem valueForProperty:MPMediaItemPropertyAssetURL];
self.mediaAsset_A = [AVAsset assetWithURL:assetUrl];
AVMutableComposition* myMutableComposition = [AVMutableComposition composition];
NSError* error = nil;
[myMutableComposition insertTimeRange:CMTimeRangeMake(self.startPoint, self.reSampledDuration) ofAsset:self.mediaAsset_A atTime:kCMTimeZero error:&error];
if(error)
NSLog(@"Insertion error: %@", error);
AVComposition *composition = [myMutableComposition copy];
self.mediaAsset_A = (AVAsset*) composition;
[self.mediaAsset_A loadValuesAsynchronouslyForKeys:@[@"duration"] completionHandler:^{
AVPlayerItem* playerItem = [AVPlayerItem playerItemWithAsset:self.mediaAsset_A];
if (self.mediaPlayer_A)
[self.mediaPlayer_A replaceCurrentItemWithPlayerItem:playerItem];
else
self.mediaPlayer_A = [AVPlayer playerWithPlayerItem:playerItem];
}];
[self.mediaPlayer_A play];
如果我不使用 AVMutableComposition,那么 AVPlayer 就可以正常工作。
MPMediaItem* mediaItem = [songObj mediaItem];
NSURL* assetUrl = [mediaItem valueForProperty:MPMediaItemPropertyAssetURL];
self.mediaAsset_A = [AVAsset assetWithURL:assetUrl];
[self.mediaAsset_A loadValuesAsynchronouslyForKeys:@[@"duration"] completionHandler:^{
AVPlayerItem* playerItem = [AVPlayerItem playerItemWithAsset:self.mediaAsset_A];
if (self.mediaPlayer_A)
[self.mediaPlayer_A replaceCurrentItemWithPlayerItem:playerItem];
else
self.mediaPlayer_A = [AVPlayer playerWithPlayerItem:playerItem];
}];
[self.mediaPlayer_A play];
所以,我不确定为什么 AVPlayer 用 AVMutableComposition 随机发出声音。帮我解决。
解决方案
推荐阅读
- c# - 将超链接添加到 Excel 工作表 closedxml
- tensorflow - Keras中非常奇怪的Reshape层行为
- python - pandas根据行上的唯一值返回索引值
- javascript - 旋转后如何获得正确的屏幕内部宽度?
- python - 队列中的异步共享变量
- javascript - 使用 twitter API js 流式传输用户的推文
- nunit - Nunit :根据从配置文件中提取的值跳过测试
- jquery - jquery根据同一a中的另一个数据属性值更新数据属性:链接和文本
- python - Kivy:弹出窗口不显示
- node.js - 基于 akey + angular mat-table 对行进行分组