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 问题