首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >快速追加或连接音频文件

快速追加或连接音频文件
EN

Stack Overflow用户
提问于 2015-03-31 12:59:40
回答 1查看 1.6K关注 0票数 2

你好,我想附上语音文件。

我正在用AVAudioRecorder录制声音,但是为了播放我需要叫“停止”的录音,但是在播放之后,我想继续录制。就像本地的iOS语音备忘录应用程序。

我应该使用AVMutableCompositionTrack吗?我应该如何快速地做到这一点?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-12 21:41:36

如果您只想暂停录制并在稍后继续录制,您可以使用AVAudioRecorder的pause()函数,而不是stop(),当您再次使用play()时,它将继续录制。

但是,如果您希望实际连接音频文件,您可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func concatenateFiles(audioFiles: [NSURL], completion: (concatenatedFile: NSURL?) -> ()) {
    guard audioFiles.count > 0 else {
        completion(concatenatedFile: nil)
        return
    }

    if audioFiles.count == 1 {
        completion(concatenatedFile: audioFiles.first)
        return
    }

    // Concatenate audio files into one file
    var nextClipStartTime = kCMTimeZero
    let composition = AVMutableComposition()
    let track = composition.addMutableTrackWithMediaType(AVMediaTypeAudio, preferredTrackID: kCMPersistentTrackID_Invalid)

    // Add each track
    for recording in audioFiles {
        let asset = AVURLAsset(URL: NSURL(fileURLWithPath: recording.path!), options: nil)
        if let assetTrack = asset.tracksWithMediaType(AVMediaTypeAudio).first {
            let timeRange = CMTimeRange(start: kCMTimeZero, duration: asset.duration)
            do {
                try track.insertTimeRange(timeRange, ofTrack: assetTrack, atTime: nextClipStartTime)
                nextClipStartTime = CMTimeAdd(nextClipStartTime, timeRange.duration)
            } catch {
                print("Error concatenating file - \(error)")
                completion(concatenatedFile: nil)
                return
            }
        }
    }

    // Export the new file
    if let exportSession = AVAssetExportSession(asset: composition, presetName: AVAssetExportPresetPassthrough) {
        let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
        let documents = NSURL(string: paths.first!)

        if let fileURL = documents?.URLByAppendingPathComponent("file_name.caf") {
            // Remove existing file
            do {
                try NSFileManager.defaultManager().removeItemAtPath(fileURL.path!)
                print("Removed \(fileURL)")
            } catch {
                print("Could not remove file - \(error)")
            }

            // Configure export session output
            exportSession.outputURL = NSURL.fileURLWithPath(fileURL.path!)
            exportSession.outputFileType = AVFileTypeCoreAudioFormat

            // Perform the export
            exportSession.exportAsynchronouslyWithCompletionHandler() { handler -> Void in
                if exportSession.status == .Completed {
                    print("Export complete")
                    dispatch_async(dispatch_get_main_queue(), {
                        completion(file: fileURL)
                    })
                    return
                } else if exportSession.status == .Failed {
                    print("Export failed - \(exportSession.error)")
                }

                completion(concatenatedFile: nil)
                return
            }
        }
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29378472

复制
相关文章
数据分析-Pandas DataFrame的连接与追加
今天我们学习多个DataFrame之间的连接和追加的操作,在合并DataFrame时,您可能会考虑很多目标。例如,您可能想要“追加”它们,您可能会添加到最后,基本上添加更多行。或者您可能希望添加更多列,我们现在将开始介绍两种主要合并DataFrame的方式:连接和追加。
XXXX-user
2019/08/26
13.8K0
数据分析-Pandas DataFrame的连接与追加
Python追加Excel追加数据
前面我分享了 Excel 的读写:Python 实现 Excel 的读写操作:https://bornforthis.cn/column/pyauto/auto_base05.html
AI悦创
2022/07/17
2.9K0
python写文件追加 按行追加_python 追加写入
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
3.6K0
解决WIFI无线连接或连接上很慢
    随着移动互联网的发展,很多公司和家庭都通过WIFI上网。对于众多使用WIFI的人来说,多多少少会遇得到很多WIFI问题,我就列3个常用的WIFI问题,看看是如何解决的。
全栈程序员站长
2021/09/07
2.5K0
Python追加文件内容
Python追加文件内容 测试中需要造几百个账号,写了个脚本可以自动生成账号,但想把生成的账号写入一个文件,
Vincent-yuan
2022/05/06
2.1K0
Access追加查询
大家好,上节介绍了操作查询中的更新查询,本节介绍追加查询的内容。操作查询的注意点都是一样的,就不再重复。
无言之月
2020/08/25
3.4K0
Access追加查询
HDFS文件追加append
1、配置集群(hdfs-site.xml),必须配置才可以   <property>         <name>dfs.support.append</name>         <value>true</value>   </property>
星哥玩云
2022/06/28
3K0
MySQL快速建立远程连接
MySQL建立远程连接,可以用命令的方式,命令有时候用很不友好,所以可以用快速建立远程连接的方法,修改MySQL数据库user表中的Host字段!将其中一个"localhost" 修改为 " % "就
简单、
2018/07/18
3.9K0
Python代理无法连接或连接不稳定故障排除指南
在使用Python进行网络爬虫或访问外部资源时,经常会遇到代理无法连接或连接不稳定的问题。本文将提供一份详细的故障排除指南,帮助你解决Python代理连接问题,确保顺利进行网络操作。
华科云商小彭
2023/08/25
4510
Python代理无法连接或连接不稳定故障排除指南
2.2 追加与合并
做数据就好像盖楼一样,设计图纸、运输原材料、打地基、建楼。PQ就是这个打地基的步骤,非常重要。打开PowerBI,在开始选项卡下面有一个编辑查询器,它就是PQ的编辑器,这个距离源数据最近的工具。
公众号PowerBI大师
2019/08/06
2.9K0
2.2 追加与合并
如何快速学好VueJS, React 或 Angular
对于没有接触过的同学,一定要先看 官方文档,现在这三大框架都有中文版,大大降低了难度,文档看一遍是不够的,5遍都不过,每一遍的收获可以一条条记录下来。官方文档是第一手资料,是最权威的。不推荐先看菜鸟教程,CSDN等别处的别人嚼过的馍。 一定要做一遍官方文档中的完整例子或教程,因为这些教程是框架作者写的,包括写法,命名是最规范的。尽量模仿。 然后有了点基础,或者有了项目经验,想提高的话。建议直接找优秀的UI组件库的源码看。Vue 看element-ui 的源码,React 和 Angular 看 ant de
mafeifan
2019/01/28
6210
解决WebClient或HttpWebRequest首次连接缓慢问题
【开发语言】C#, 理论上VB.NET等依赖.NET Framework框架的语言均受此影响
冰封一夏
2019/09/11
1.1K0
Matlab读取和写入音频文件
使用 audiowrite 函数将数据写入当前文件夹中名为 handel.wav 的 WAVE 文件。
用户9925864
2022/07/27
3.6K0
Matlab读取和写入音频文件
光纤快速连接器LC/SC
随着光通信技术的不断更新进步,带动了FTTH(光纤到户)的大规模发展,从而促进了光纤快速连接器的市场规模不断扩大。光纤快速连接器配合光纤到户工程中常用的皮线光缆,即可现场组装成为 SC/LC 型尾纤。在现场组装时,仅需配合切割刀等简单的工具,即能快速完成组装尾纤,其性能优越,适合各种使用环境,简单的锁紧结构能实现重复使用,简化维护操作。
晟科通信
2020/06/10
7030
光纤快速连接器LC/SC
使用jquery追加table行
//js代码 $(function(){ //新增 $('#insertRow').click(function(){ var $tr = $('#templateTr').clone(true); $tr.attr('id',''); $('#columnid tbody').append($tr); $tr.show(); }); //删除 $('#columnid .delrow').click(fu
xiny120
2019/06/13
2.4K0
vf page 追加message
apex classApexPages.Message msg = new ApexPages.Message(ApexPages.Severity.Error, 'error occured.');ApexPages.addMessage(msg);return null;VF Page<apex:pageBlock id="block"> <apex:pageMessages id="block"></apex:pageMessages> </apex:pageBlock>
Merry he
2023/05/11
1K0
python 文件读写(追加、覆盖)
由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现:
matinal
2023/10/13
2190
python 文件读写(追加、覆盖)
python音频文件中pcm格式提取
一.环境配置 https://ffmpeg.org/download.html#build-windows #选择对于系统 如果是windows直接访问一下连接 https://github.com/BtbN/FFmpeg-Builds/releases 选择xxx-shared.zip https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2020-09-27-12-31/ffmpeg-N-99395-ga3a6b56200-w
小小咸鱼YwY
2020/10/10
2.9K0
Python--音频文件分类代码
上代码: import os from shutil import copy2 SOURCE = "c:\\source\\" DEST = "c:\\dest\\" # Iterate recursively through all files and folders under the source directory for path, dirs, files in os.walk(SOURCE): # For each directory iterate over the fi
K同学啊
2019/01/22
1.1K0
音频文件传输测试方法
2)断点续传(传输中BLE或WiFi断开): 传输到APP端的文件,opus分为多个文件; 测试文件完整性时,需要对这些opus文件按顺序进行拼接(打开1.opus,将后续的opus中内容依次拷贝到1.opus中内容后面,保存),利用拼接完成的1.opus文件来验证传输过来的文件完整性和正确性;
用户5521279
2020/08/04
1.4K0
音频文件传输测试方法

相似问题

快速音频文件输出

44

快速播放顺序音频文件

10

将音频文件追加到现有文件

10

快速推送/追加数组

24

如何快速追加到QTextEdit

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文