c# - 单点触控 : trying to play audio from a file that is generated on the fly using AVAudioPlayer

标签 c# streaming xamarin.ios avaudioplayer

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

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

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

AVAudioPlayer player = AVAudioPlayer.FromData(NSData.FromStream(f));

那总是返回一个空播放器,所以我将 FileStream 包装成 BufferedStream 之类的

BufferedStream bf = new BufferedStream(f);

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

这让播放器至少获得了一个非空值,但我什么也听不到。

有没有人遇到过同样的问题,并且知道解决方案?我可以那样使用 AVAudioPlayer 还是我以错误的方式做这一切?

最佳答案

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

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

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

希望这对某人有帮助。

关于c# - 单点触控 : trying to play audio from a file that is generated on the fly using AVAudioPlayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5832736/

相关文章:

c# - 接口(interface)不能隐式转换类型

video - 直播和直播的区别?

sockets - 直播(Socket)-如何同步音频和视频?

java - 云数据流 Watermark 卡住并增加系统滞后

c# - 使用 Monotouch 更改 UISearchBar 上 “Cancel” 按钮的文本?

c# - 如何从 UICollectionElementKindSection.Header 转换为 NSString?

c# - 从共享某些部分的 2 个接口(interface)实现一个类

c# - 从 ModelState 中删除 JSON.net 序列化异常

c# - Microsoft Graph - 在 SDK C# 中过滤

c# - OxyPlot:如何隐藏左侧和顶部轴线