我面临以下问题.. 我想使用 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/