菜鸟教程小白 发表于 2022-12-12 15:00:30

ios - 无法将 caf 格式转换为 m4a 格式


                                            <p><p>我使用以下代码将 caf 格式转换为 m4a 格式并保存到 Iphone 的另一个目录,它在 Xcode 4.6.3 的 IOS6 中工作,但是当我更新到 Xcode 5 时,它不再工作了。如果在 Xcode 5 中使用 IOS6 模拟器,它会再次工作。</p>

<pre><code>-(void)saveFile {
    NSString *docDirPath = ;
    outputFile = ]];
}
</code></pre>

<p>所以我想知道这是 IOS 7 的错误还是 Apple 改变了什么?</p>

<p>谢谢</p>

<p><strong>更新</strong></p>

<pre><code>AVURLAsset *audioAsset = [initWithURL:recordedTmpFile options:nil];
AVMutableComposition *mixComposition = ;
AVMutableCompositionTrack *compositionTrackA = ;

AVAssetTrack *clipAudioTrack = [ lastObject];

;

AVAssetExportSession *exporter =[ initWithAsset:mixComposition presetName:AVAssetExportPresetAppleM4A];

;


NSParameterAssert(exporter!=nil);
exporter.outputFileType=AVFileTypeAppleM4A;
exporter.outputURL=outputFile;
// Subtract a fraction of a second so the first word isn&#39;t chopped off
clipStartTime = clipStartTime - kSilenceBeforeFirstAudio;

CMTime start=CMTimeMake(clipStartTime * 100, 100);
CMTime duration=CMTimeMake(clipDuration * 100, 100);
CMTimeRange range=CMTimeRangeMake(start, duration);
exporter.timeRange=range;
;
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好的,我发现了问题。
应该替换这一行</p>

<pre><code>;
</code></pre>

<p>到</p>

<pre><code>   [exporter exportAsynchronouslyWithCompletionHandler:^{
      int exportStatus = exporter.status;
      switch (exportStatus) {

            case AVAssetExportSessionStatusFailed: {

                NSError *exportError = exporter.error;
                NSLog (@&#34;AVAssetExportSessionStatusFailed: %@&#34;, exportError);
                break;
            }
            case AVAssetExportSessionStatusCompleted: {
                NSLog (@&#34;AVAssetExportSessionStatusCompleted--&#34;);
                break;
            }
            case AVAssetExportSessionStatusUnknown: {
                NSLog (@&#34;AVAssetExportSessionStatusUnknown&#34;);
                break;
            }
            case AVAssetExportSessionStatusExporting: {
                NSLog (@&#34;AVAssetExportSessionStatusExporting&#34;);
                break;
            }
            case AVAssetExportSessionStatusCancelled: {
                NSLog (@&#34;AVAssetExportSessionStatusCancelled&#34;);
                break;
            }
            case AVAssetExportSessionStatusWaiting: {
                NSLog (@&#34;AVAssetExportSessionStatusWaiting&#34;);
                break;
            }
            default: { NSLog (@&#34;didn&#39;t get export status&#34;); break;}
      }

    }];
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 无法将 caf 格式转换为 m4a 格式,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/19116339/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/19116339/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 无法将 caf 格式转换为 m4a 格式