2015-06-10 84 views
1

在watchOS 2中,Apple包含了一項新功能,允許應用程序記錄短的音頻文件,但是,如何在我現有的WatchKit項目中調用這種新方法?如何錄製音頻並使用WatchOS2進行播放?

- (void)presentAudioRecordingControllerWithOutputURL:(NSURL * nonnull)URL 
               preset:(WKAudioRecordingPreset)preset 
            maximumDuration:(NSTimeInterval)maximumDuration 
             actionTitle:(NSString * nullable)actionTitle 
              completion:(void (^ nonnull)(BOOL didSave, 
                   NSError * nullable error))completion; 

我的問題不是如何調用該方法,是Xcode編譯器說,找不到這個函數。我是否必須包含任何其他框架?難道是因爲我的WatchKit項目是使用以前版本的WatchOS創建的?

謝謝!

+0

謝謝,但我的問題是關於新的WatchOS版本。有人在我問之後回答。 – EnriMR

+2

@EntriMR複製僅在問題之間創建網絡。兩個問題的答案都是相關的,所以當每個問題被問到時都沒有關係。 – AstroCB

回答

2

1)您需要創建一個文件URL來存儲錄製的輸出。

NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                 NSUserDomainMask,YES); 
NSString *path = [[filePaths firstObject] stringByAppendingPathComponent:@"rec.m4a"]; 
NSURL *fileUrl = [NSURL fileURLWithPath:path]; 

您可以指定的擴展.wav格式,.mp4和.m4a的。

2)調用方法如下:

[self presentAudioRecordingControllerWithOutputURL:fileUrl 
              preset:WKAudioRecordingPresetWideBandSpeech 
            maximumDuration:5.0 
             actionTitle:@"Some Title" 
             completion:^(BOOL didSave, NSError * __nullable error) { 

              NSLog(@"didSave:%d, error:%@", didSave, error); 
             }]; 

可以選擇除了預設上述

  • WKAudioRecordingPresetNarrowBandSpeech
  • WKAudioRecordingPresetHighQualityAudio

在斯威夫特:

self.presentAudioRecordingControllerWithOutputURL(
    self.recFileURL(), 
    preset: WKAudioRecordingPreset.WideBandSpeech, 
    maximumDuration: 5.0, 
    actionTitle: "SomeTitle") { (didSave, error) -> Void in 

     print("didSave:\(didSave), error:\(error)") 
} 

可以按如下方式播放錄音文件:

self.presentMediaPlayerControllerWithURL(
    fileURL, 
    options: nil) { (didPlayToEnd, endTime, error) -> Void in 

     print("didPlayToEnd:\(didPlayToEnd), endTime:\(endTime), error:\(error)") 
} 

您可以查看詳細規範here

+0

我在編寫要調用的方法時收到錯誤消息。我應該加入一些圖書館嗎?我的項目是用以前版本的WatchOS – EnriMR

+0

@ shu223創建的......你可以解釋如何使用objective-c來記錄和播放音頻 – Priya