Monotouch:尝试从使用 AVAudioPlayer 动态生成的文件中播放音频

Posted

技术标签:

【中文标题】Monotouch:尝试从使用 AVAudioPlayer 动态生成的文件中播放音频【英文标题】:Monotouch: trying to play audio from a file that is generated on the fly using AVAudioPlayer 【发布时间】:2011-04-29 13:32:45 【问题描述】:

我面临以下问题.. 我想使用 AVAudioRecorder 从 Mic 录制音频文件并将输出实时流式传输到 AVAudioPlayer。我通过打开一个流尝试了这一点

FileStream f = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

其中 fileName 是记录器正在写入的文件的名称。然后我尝试初始化一个 AVAudioPlayer:

AVAudioPlayer 播放器 = AVAudioPlayer.FromData(NSData.FromStream(f));

这总是返回一个空播放器,所以我将 FileStream 包装到一个 BufferedStream 中

BufferedStream bf = new BufferedStream(f);

然后我使用上面的代码行初始化播放器,但我没有传递 f 流,而是传递了 bf 流。

这让玩家至少获得了一个不是null的值,但我什么都听不见。

是否有人遇到过同样的问题并知道解决方案?我可以那样使用 AVAudioPlayer 还是我做错了?

【问题讨论】:

【参考方案1】:

我知道这是一个较老的问题,但我正在回答以防其他人遇到这个问题。

要播放刚刚录制的音频,请从基于您刚刚录制到的文件名的 URL 创建音频播放器:

AVAudioPlayer player = AVAudioPlayer.FRomUrl(NSUrl.FromFileName(fileName));
player.PrepareToPlay();
player.Play();

希望这对某人有所帮助。

【讨论】:

以上是关于Monotouch:尝试从使用 AVAudioPlayer 动态生成的文件中播放音频的主要内容,如果未能解决你的问题,请参考以下文章

monotouch:从相机保存的 WriteImageToSavedPhotosAlbum 问题

MonoTouch:用于外部附件的 ESSession

从 Nib 加载视图不会初始化插座 - Monotouch

从命令行自动执行 iOS monotouch GUI 测试

Monotouch - 带有 iPad 应用的 UIImagePickerController

从 UITextField 单击事件 MonoTouch 在 UIDatePicker 中选择日期