GVKun编程网logo

在Swift中录制音频(swiftinput)

11

本篇文章给大家谈谈在Swift中录制音频,以及swiftinput的知识点,同时本文还将给你拓展4.7Swift中swift中的switch语句、android-在后台服务中录制音频、ios–使用Sw

本篇文章给大家谈谈在Swift中录制音频,以及swiftinput的知识点,同时本文还将给你拓展4.7 Swift中swift中的switch 语句、android-在后台服务中录制音频、ios – 使用Swift录制输出音频、swift – 开始录制后Apple Watch录制音频界面崩溃等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

在Swift中录制音频(swiftinput)

在Swift中录制音频(swiftinput)

有谁知道我在哪里可以找到有关如何在Swift应用程序中录制音频的信息?我一直在看一些音频播放示例,但是在实现音频记录方面似乎找不到任何东西。谢谢

答案1

小编典典

这是代码。您可以轻松地进行记录。将此代码写在上。IBAction它将Documents按名称保存记录recordTest.caf

//declare instance variable var audioRecorder:AVAudioRecorder!func record(){            var audioSession:AVAudioSession = AVAudioSession.sharedInstance()    audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)    audioSession.setActive(true, error: nil)    var documents: AnyObject = NSSearchPathForDirectoriesInDomains( NSSearchPathDirectory.DocumentDirectory,  NSSearchPathDomainMask.UserDomainMask, true)[0]    var str =  documents.stringByAppendingPathComponent("recordTest.caf")    var url = NSURL.fileURLWithPath(str as String)    var recordSettings = [AVFormatIDKey:kAudioFormatAppleIMA4,        AVSampleRateKey:44100.0,        AVNumberOfChannelsKey:2,AVEncoderBitRateKey:12800,        AVLinearPCMBitDepthKey:16,        AVEncoderAudioQualityKey:AVAudioQuality.Max.rawValue]    println("url : \(url)")    var error: NSError?    audioRecorder = AVAudioRecorder(URL:url, settings: recordSettings, error: &error)    if let e = error {        println(e.localizedDescription)    } else {        audioRecorder.record()    }        }

4.7 Swift中swift中的switch 语句

4.7 Swift中swift中的switch 语句

/**

switch 语句

*/

let str = "aAbBacdef"

let str2 = "aAbBadef"

let str3 = "aAbBadeff"


// var array = [];

for c in ["A","a",str3]

{

switch c {

// case "a":

case "a","A":

print("ldd")


// 必须有

default:

print("dd")

}

}

/**

case "a":

case "A":

print("ldd")

C语言中, 这样写 无论遇到 a A 都会执行 print("ldd")

swift中就不允许这样子了,但是可以这样子写

case "a","A": 中间用逗号隔开

*/

// switch value {

// case pattern:

// code

// default:

// }

/**

c 语言中

case 下面有个 break

如果忘了写break 会顺序执行下面的语句,直到执行break

但是swift语言就是看到这一点就,不要break了。比较case里面的条件后,

执行完毕后面的语句就自动退出 switch语句了。

如果想要继续执行 fallthrough

*/

android-在后台服务中录制音频

android-在后台服务中录制音频

嗨,大家好,我想使用moveTaskToBack(true)将活动发送到后台后,记录几秒钟的音频;方法.我创建了一个服务,从该服务开始记录,还设置了我希望录制音频的时间.一旦最小化,问题就来了.在大约2秒后,它会停止录制,我需要录制大约一分钟.我想知道,如果应用程序在后台运行,是否真的有可能录制音频.

我的服务记录如下:

@Override
    protected void onHandleIntent(Intent intent) {

    recorder = new MediaRecorder();
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    recorder.setoutputFormat(output_formats[currentFormat]);
    recorder.setoutputFile(fake.getFilename());
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

    try {
        recorder.prepare();

            recorder.start();
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    recorder.stop();
                }
            }, 6000000);

    } catch (IllegalStateException e) {
        e.printstacktrace();
    } catch (IOException e) {
        e.printstacktrace();
    }
}

我的活动将调用该服务并关闭,如下所示:

public void mecierro() {
        Intent intent = new Intent(Panic.this, Record_service.class);
        Panic.this.startService(intent);  //starting the service

        start1 = new CountDownTimer(5000, 1000) {

           public void onTick(long millisUntilFinished) {
           }

           public void onFinish() {
            moveTaskToBack(true);  //"minimizing" the app
           }
    }.start();


}

谢谢您的帮助!

解决方法:

是的,可以在后台录制音频百分之一百.
使用服务启动记录器.
然后,您在其中启动此服务的活动使用以下方法
    startForeground()而不是startService()
这是因为您的服务在进一步记录之前就被杀死了.除非用户强迫,否则前台服务不会被杀死.

ios – 使用Swift录制输出音频

ios – 使用Swift录制输出音频

是否可以使用 Swift在应用程序中录制输出音频?所以,例如,假设我正在收听播客,我想在一个单独的应用程序中录制播客音频的一小部分.有没有办法做到这一点?

我环顾四周,但只能找到录音麦克风录音等信息.

解决方法

这取决于你如何制作音频.如果音频的制作在您的控制之内,您可以点击输出并在播放时录制到文件.最简单的方法是使用新的AVAudioEngine功能(还有其他方法,但AVAudioEngine对他们来说基本上是一个简单的前端).

当然,如果真正的问题是要播放一个播客的副本,那么显然你所要做的就是下载播客而不是听它.同样,您可以缓冲并将流式音频保存到文件中.有很多应用程序可以做到这一点.但这不是因为该设备的输出被劫持;它又是因为我们控制了声音数据本身.

swift – 开始录制后Apple Watch录制音频界面崩溃

swift – 开始录制后Apple Watch录制音频界面崩溃

我正在尝试使用presentAudioRecorderControllerWithOutputURL方法使用Apple Watch录制音频.

我正在使用Xcode 7.0 beta 5,iOS9 beta,WatchOS 2 beta& Swift2.

它在模拟器上运行良好.但是,一旦在实际设备上,它会在调用方法时崩溃.

这是我目前的代码:

@IBAction func onClickSpeech() {
    let filePaths = NSSearchPathForDirectoriesInDomains(
        NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.UserDomainMask,true)
    let documentDir = filePaths.first!
    let recsoundURL = documentDir + "/record.m4a"
    let nsUrl = NSURL.fileURLWithPath(recsoundURL)

    let audioOptions = [
        WKAudioRecorderControllerOptionsActionTitleKey  : "Recording title",WKAudioRecorderControllerOptionsAlwaysShowActionTitleKey : false,WKAudioRecorderControllerOptionsAutorecordKey: true,WKAudioRecorderControllerOptionsMaximumDurationKey: NSTimeInterval.infinity
    ]

    presentAudioRecorderControllerWithOutputURL(
        nsUrl,preset: WKAudioRecorderPreset.NarrowBandSpeech,options: audioOptions as [NSObject : AnyObject]) { (didSave,error) -> Void in
            print("didSave:\(didSave),error:\(error)")
    }
}

recsoundURL是一个有效的路径.

我在设备日志中遇到的错误:

Aug 18 16:42:12 Sennetts-AppleWatch mediaserverd[283] <Error>: 16:42:12.532 EXCEPTION: [0x1f1ac000] >va> 565: kAudioHardwareUnkNownPropertyError: "AudioObjectHasProperty([goin/glob/0]) returned false."
Aug 18 16:42:12 Sennetts-AppleWatch mediaserverd[283] <Error>: 16:42:12.555 ERROR:    [0x1f1ac000] >va> 240: CAException caught by ExceptionBarrier: 2003332927.

任何想法都会非常感激,因为我无法想出这一点.谢谢.

解决方法

请看下面的代码(使用 app group’s共享文件夹)

@IBAction func recordAudio() {

    let fileName = "audioFile.wav"

    let fileManager = NSFileManager.defaultManager()
    let container = fileManager.containerURLForSecurityApplicationGroupIdentifier(Constants.kAppGroupId)
    self.saveUrl = container?.URLByAppendingPathComponent(fileName)


    let duration = NSTimeInterval(120)
    let recordOptions = [WKAudioRecorderControllerOptionsMaximumDurationKey : duration]
    presentAudioRecorderControllerWithOutputURL(self.saveUrl!,preset: .WideBandSpeech,options: recordOptions,completion: { saved,error in

            if let err = error {
                print(err.description)
            }
            if saved {
                // Write code to execute when audio file gets saved.

            }
    })
}

关于在Swift中录制音频swiftinput的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于4.7 Swift中swift中的switch 语句、android-在后台服务中录制音频、ios – 使用Swift录制输出音频、swift – 开始录制后Apple Watch录制音频界面崩溃的相关知识,请在本站寻找。

本文标签: