本篇文章给大家谈谈在Swift中录制音频,以及swiftinput的知识点,同时本文还将给你拓展4.7Swift中swift中的switch语句、android-在后台服务中录制音频、ios–使用Sw
本篇文章给大家谈谈在Swift中录制音频,以及swiftinput的知识点,同时本文还将给你拓展4.7 Swift中swift中的switch 语句、android-在后台服务中录制音频、ios – 使用Swift录制输出音频、swift – 开始录制后Apple Watch录制音频界面崩溃等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- 在Swift中录制音频(swiftinput)
- 4.7 Swift中swift中的switch 语句
- android-在后台服务中录制音频
- ios – 使用Swift录制输出音频
- swift – 开始录制后Apple Watch录制音频界面崩溃
在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 语句
/**
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-在后台服务中录制音频
嗨,大家好,我想使用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录制输出音频
我环顾四周,但只能找到录音麦克风录音等信息.
解决方法
当然,如果真正的问题是要播放一个播客的副本,那么显然你所要做的就是下载播客而不是听它.同样,您可以缓冲并将流式音频保存到文件中.有很多应用程序可以做到这一点.但这不是因为该设备的输出被劫持;它又是因为我们控制了声音数据本身.
swift – 开始录制后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.
任何想法都会非常感激,因为我无法想出这一点.谢谢.
解决方法
@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录制音频界面崩溃的相关知识,请在本站寻找。
本文标签: