- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 https://github.com/tumtumtum/StreamingKit
用于流式传输实时 url。工作得很好。我想在我的应用程序中添加录音/保存音频功能。有谁知道这个图书馆是否可以做到这一点?如果没有,是否有其他选择?请注意,我需要录制实时流音频,而不是本地文件/静态 url。
该页面显示您可以在播放之前拦截 PCM 数据:
[audioPlayer appendFrameFilterWithName:@"MyCustomFilter" block:^(UInt32 channelsPerFrame, UInt32 bytesPerFrame, UInt32 frameCount, void* frames)
{
...
}];
但是,我不确定如何将其转换为实际的录音/mp3 文件,甚至无法从中截取实际数据?
最佳答案
您可以这样做,尽管 StreamingKit 似乎对它提供给您的样本的格式有点保密。采样率是多少? float 还是整数?我想你可以从样本量中猜出。此示例假定 16 位整数。
NSURL *dstUrl = [[NSURL fileURLWithPath:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] ] URLByAppendingPathComponent:@"output.m4a"];
NSLog(@"write to %@", dstUrl);
__block AVAudioFile *audioFile = nil;
[audioPlayer appendFrameFilterWithName:@"MyCustomFilter" block:^(UInt32 channelsPerFrame, UInt32 bytesPerFrame, UInt32 frameCount, void* frames)
{
NSError *error;
// what's the sample rate? StreamingKit doesn't seem to tell us
double sampleRate = 44100;
if (!audioFile) {
NSDictionary *settings =
@{
AVFormatIDKey : @(kAudioFormatMPEG4AAC),
AVSampleRateKey : @(sampleRate),
AVNumberOfChannelsKey : @(channelsPerFrame),
};
// need commonFormat?
audioFile = [[AVAudioFile alloc] initForWriting:dstUrl settings:settings commonFormat:AVAudioPCMFormatInt16 interleaved:YES error:&error];
if (!audioFile) {
// error
}
}
AVAudioFormat *format = [[AVAudioFormat alloc] initWithCommonFormat:AVAudioPCMFormatInt16 sampleRate:sampleRate channels:channelsPerFrame interleaved:YES];
AVAudioPCMBuffer *buffer = [[AVAudioPCMBuffer alloc] initWithPCMFormat:format frameCapacity:frameCount];
buffer.frameLength = frameCount;
memmove(buffer.int16ChannelData[0], frames, frameCount*bytesPerFrame);
if (![audioFile writeFromBuffer:buffer error:&error]) {
NSLog(@"write error: %@", error);
}
}];
[self.audioPlayer performSelector:@selector(removeFrameFilterWithName:) withObject:@"MyCustomFilter" afterDelay:10];
关于iOS StreamingKit 如何录制/保存音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39627397/
我们正在使用 StreamingKit (https://github.com/tumtumtum/StreamingKit) 从流式 m4a 音频源列表中播放,用户可以在这些音频源之间自由来回移动。
我在播放本地(保存在设备上)歌曲队列时遇到问题。我正在使用这个 cocoapod - https://github.com/tumtumtum/StreamingKit 。我队列中的第一个项目在完成后
我正在使用 https://github.com/tumtumtum/StreamingKit 用于流式传输实时 url。工作得很好。我想在我的应用程序中添加录音/保存音频功能。有谁知道这个图书馆是否
这是我的代码。我使用 UISlider 作为搜索栏,因此当 UISlider 值更改时 - (IBAction)sliderValueChanged:(UISlider *)sender 被调用。 -
有没有人用过这个https://github.com/tumtumtum/StreamingKit/播放远程 mp3 文件的包?如何加载一组音乐 URL 并一个接一个地播放它们? 最佳答案 正如文件所
https://github.com/tumtumtum/StreamingKit.git 尝试通过 git 获取存储库时出现错误。 Cloning into 'StreamingKit'... wa
我是一名优秀的程序员,十分优秀!