如何使用AVAssetReader计算从iPod库中获取的歌曲的采样率。我想我可以很容易地获得样本的数量,(无论如何我已经成功地读取了样本。),但我不知道从哪里可以获得歌曲的长度(以秒为单位)。
请注意,MPMediaItem没有媒体项的长度属性,也许还有其他方法可以通过此接口获取项的长度?
发布于 2011-11-23 07:17:21
您可以使用MPMediaItem
来获取长度。看一看MPMediaItemPropertyPlaybackDuration
属性键。文档状态:
媒体项的播放时长。NSTimeInterval是一个以秒为单位表示持续时间的NSNumber对象。
发布于 2017-11-28 09:49:03
如果您实际上仍然想知道采样率,可以这样做:一旦您有了感兴趣的AVAssetTrack
,就可以获得AudioStreamBasicDescription
并检查它,以找到原始采样率。
AVAssetTrack * track = ...;
CMAudioFormatDescriptionRef trackDescription = static_cast<CMAudioFormatDescriptionRef>([track.formatDescriptions firstObject]);
const AudioStreamBasicDescription * trackAsbd = CMAudioFormatDescriptionGetStreamBasicDescription(trackDescription);
double sampleRate = trackAsbd->mSampleRate;
已省略错误检查...
https://stackoverflow.com/questions/8234263
复制相似问题