在 AVAudioPlayer 中获取音频片段的样本?

Posted

技术标签:

【中文标题】在 AVAudioPlayer 中获取音频片段的样本?【英文标题】:Get samples of audio clip in AVAudioPlayer? 【发布时间】:2021-05-16 08:12:40 【问题描述】:

我可以使用 AVAudioPlayer 类上的属性来获取样本吗?如果没有,我可以使用其他课程来获取此信息吗?

这是我所拥有的:

var openDialog = NSOpenPanel.OpenPanel;
openDialog.CanChooseFiles = true;
openDialog.CanChooseDirectories = false;
openDialog.AllowedFileTypes = new string[]  "wav" ;

if (openDialog.RunModal() == 1)


    var url = openDialog.Urls[0];

    if (url != null)
    
        var path = url.Path;
        var audioplayer = AVFoundation.AVAudioPlayer.FromUrl(file);
        var samples = audioplayer.SAMPLES?;

Visual Studio Mac (C# / Xamarin)

【问题讨论】:

【参考方案1】:

AVAudioPlayer 不允许您访问样本数据,但如果您将播放切换到AVPlayer,您可以使用MTAudioProcessingTap 在播放样本时“点击”它们。

如果您只是想检查文件中的样本,可以使用AVAudioFile

// get the total number of samples
var audioFile = new AVAudioFile(file, out outError);
var samples = audioFile.Length;

【讨论】:

太棒了!我到家时会检查的。这会帮助我获得样本总数吗? 检查文件(例如AVAudioFile)会告诉你,通过点击你可以总结你看到的样本数量,但我不确定它是否会告诉你什么时候样品完成。 我添加了一个我认为是样本长度的示例。不过我无法验证它。

以上是关于在 AVAudioPlayer 中获取音频片段的样本?的主要内容,如果未能解决你的问题,请参考以下文章

使用 AVAudioPlayer 播放本地音频文件

如何确定与 AVAudioPlayer 关联的音频文件的长度

AVAudioPlayer 持续时间与音频文件的实际持续时间不匹配

iOS6 AVAudioPlayer - AAC音频文件的持续时间总是返回0。

快速恢复 AVAudioPlayer 中的声音

IOS开发中AVFoundation中AVAudioPlayer的使用