iphone - 如何颠倒NSMutableData的顺序

标签 iphone objective-c audio reverse nsmutabledata

我想反转NSMutableData的字节。

我正在从音频文件生成nsmutabledata对象。并使用数据播放。我的目的是反向播放音频。

如果我可以反转NSMutableData,我将会成功。

这是我的代码

NSString *inputVideoPath = [[NSBundle mainBundle] pathForResource:@"chalne" ofType:@"mp3"];

NSMutableData *wave=[NSMutableData dataWithContentsOfURL:[NSURL fileURLWithPath:inputVideoPath]];

avPlayer = [[AVAudioPlayer alloc] initWithData:wave error:nil ];
[avPlayer prepareToPlay];
[avPlayer play];

最佳答案

由于声音数据的字节流具有特定格式,因此仅反转位的顺序将不起作用。您需要反转样本,而不是整个字节流。但是,要回答“如何反转NSData的字节”,这应该可以工作(将其键入,可能有错字):

NSData *myData;
const char *bytes = [myData bytes];
char *reverseBytes = malloc(sizeof(char) * [myData length]);
int index = [myData length] - 1;
for (int i = 0; i < [myData length]; i++)
    reverseBytes[index--] = bytes[i];
NSData *reversedData = [NSData dataWithBytes:reverseBytes length:[myData length]]
free(reverseBytes);

关于iphone - 如何颠倒NSMutableData的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11760908/

相关文章:

java - 从音频文件计算 FFT

ios - 减小 UIImage 大小不起作用

iphone - 内存泄漏仅出现在 iPhone 上

ios - ARC 中的 Objective-C 命名约定

iphone - 在已部署的应用程序上推送一个 nil View Controller

android - Android:RTSP音频流问题

iphone - 如何在iPhone上同时录制麦克风输入和音轨

iphone - 编辑和删除现有的 EKEvent?

ios - 为什么我的表格 View 单元格的高度在手机上如此大,但在模拟器中却不然?

iphone - 获取 "Active Configuration"