作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在它起作用之前我无法理解问题是什么
- (NSString *)titleForAudioFileModel:(APAudioPlayerModel *)audioFileModel {
AVPlayerItem *avItem = [AVPlayerItem playerItemWithURL:[NSURL fileURLWithPath:audioFileModel.filePath]];
NSUInteger titleIndex = [avItem.asset.commonMetadata indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
AVMutableMetadataItem *metaItem = (AVMutableMetadataItem *)obj;
if ([metaItem.commonKey isEqualToString:AVMetadataCommonKeyTitle]) {
return YES;
}
return NO;
}];
if (titleIndex == NSNotFound) {
return @"";
}
AVMutableMetadataItem *item = avItem.asset.metadata[titleIndex];// Incompatible pointer types initializing 'AVMutableMetadataItem *' with an expression of type 'AVMetadataItem *'
return (NSString *)item.value;
}
提前谢谢你。
最佳答案
您要分配给 item
的属性变量声明为:
@property(nonatomic, readonly) NSArray <AVMetadataItem *> *metadata
这意味着编译器期望数组中的每一项都是 AVMetadataItem
类型.此类是 AVMutableMetadataItem
的父类(super class),并且您不能将对父类(super class)的引用分配给子类的变量。
它之前可能起作用的原因是 SDK 和编译器并不总是支持泛型(属性声明中的 <AVMetadataItem *>
)。只要你不对待item
,它就会起作用作为可变的。
解决方法是更改 item
的类型,或分配 mutableCopy
的 avItem.asset.metadata[titleIndex]
.
关于ios - 使用 'AVMutableMetadataItem *' 类型的表达式初始化 'AVMetadataItem *' 的不兼容指针类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33737477/
我正在尝试使用 AVMutableMetadataItem 更新文件的轨道数。除了 AVMetadataFormatiTunesMetadata 之外,我已经取得了一些成功。我似乎无法弄清楚我需要设置
在它起作用之前我无法理解问题是什么 - (NSString *)titleForAudioFileModel:(APAudioPlayerModel *)audioFileModel { A
我是一名优秀的程序员,十分优秀!