gpt4 book ai didi

iOS 音频修剪

转载 作者:技术小花猫 更新时间:2023-10-29 10:56:07 27 4
gpt4 key购买 nike

我搜索了很多但找不到任何相关的东西...我正在处理 iOS 音频文件,这就是我想做的...

  1. 录制音频并保存剪辑(已检查,我是使用 AVAudioRecorder 完成的)
  2. 改变音高(已检查,是否使用 Dirac)
  3. 修剪 :(

我有两个标记,即开始和结束偏移,使用此信息我想修剪录制的文件并想将其保存回来。我不想使用“搜索”,因为稍后我想同步播放所有录制的文件(就像时间轴中的 Flash 影片剪辑),最后我想导出为一个音频文件。

最佳答案

这是我用来从预先存在的文件中修剪音频的代码。如果您已经保存或正在保存为另一种格式,则需要更改与 M4A 相关的常量。

- (BOOL)trimAudio
{
float vocalStartMarker = <starting time>;
float vocalEndMarker = <ending time>;

NSURL *audioFileInput = <your pre-existing file>;
NSURL *audioFileOutput = <the file you want to create>;

if (!audioFileInput || !audioFileOutput)
{
return NO;
}

[[NSFileManager defaultManager] removeItemAtURL:audioFileOutput error:NULL];
AVAsset *asset = [AVAsset assetWithURL:audioFileInput];

AVAssetExportSession *exportSession = [AVAssetExportSession exportSessionWithAsset:asset
presetName:AVAssetExportPresetAppleM4A];

if (exportSession == nil)
{
return NO;
}

CMTime startTime = CMTimeMake((int)(floor(vocalStartMarker * 100)), 100);
CMTime stopTime = CMTimeMake((int)(ceil(vocalEndMarker * 100)), 100);
CMTimeRange exportTimeRange = CMTimeRangeFromTimeToTime(startTime, stopTime);

exportSession.outputURL = audioFileOutput;
exportSession.outputFileType = AVFileTypeAppleM4A;
exportSession.timeRange = exportTimeRange;

[exportSession exportAsynchronouslyWithCompletionHandler:^
{
if (AVAssetExportSessionStatusCompleted == exportSession.status)
{
// It worked!
}
else if (AVAssetExportSessionStatusFailed == exportSession.status)
{
// It failed...
}
}];

return YES;
}

还有 Technical Q&A 1730 ,它给出了稍微更详细的方法。

关于iOS 音频修剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698787/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com