2016-03-26 5 views
-1

Я следовал за Udacity Ввод в разработку приложений iOS с помощью Swift, но получил эту ошибку.Значение типа 'PlaySoundsViewController' не имеет зарегистрированного пользователяAudio '

Value of type 'PlaySoundsViewController' has no member 'recordedAudio' 

У линии 84 есть ошибки.

playSoundsVC.recordedAudio = recordedAudioURL 

Вот весь код:

import UIKit 
import AVFoundation 

class RecordSoundsViewController: UIViewController , AVAudioRecorderDelegate { 

@IBOutlet weak var recordingInProgress: UILabel! 
@IBOutlet weak var stopButton: UIButton! 
@IBOutlet weak var recordButton: UIButton! 

var audioRecorder:AVAudioRecorder! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

override func viewWillAppear(animated: Bool) { 
    //TODO: Hide stop button 
    stopButton.hidden = true 
    //TODO: Enable recordButton 
    recordButton.enabled = true 
} 

@IBAction func recordAudio(sender: AnyObject) { 
    //TODO: Show text "recording in progress" 
    recordingInProgress.hidden = false 
    //TODO: Show stopButton 
    stopButton.hidden = false 
    //TODO: Record the user's voice 
    print("in recordAudio") 
    //TODO: Disable recording button 
    recordButton.enabled = false 

    let dirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask, true)[0] as String 
    let recordingName = "recordedVoice.wav" 
    let pathArray = [dirPath, recordingName] 
    let filePath = NSURL.fileURLWithPathComponents(pathArray) 
    print(filePath) 

    let session = AVAudioSession.sharedInstance() 
    try! session.setCategory(AVAudioSessionCategoryPlayAndRecord) 

    try! audioRecorder = AVAudioRecorder(URL: filePath!, settings: [:]) 
    audioRecorder.meteringEnabled = true 
    audioRecorder.prepareToRecord() 
    audioRecorder.record() 
} 

@IBAction func stopRecording(sender: AnyObject) { 
    //TODO: hide recordingInProgress label 
    recordingInProgress.hidden = true 
    recordButton.enabled = true 
    let audioSession = AVAudioSession.sharedInstance() 
    try! audioSession.setActive(false) 
} 

func audioRecorderDidFinishRecording(recorder: AVAudioRecorder, successfully flag: Bool) { 
    print("AVAudioRecorder finished saving recording") 
    if (flag) { 
     self.performSegueWithIdentifier("stopRecording", sender: audioRecorder.url) 
    } else { 
     print("Saving of recording failed") 
    } 
} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if (segue.identifier == "stopRecording") { 
     let playSoundsVC = segue.destinationViewController as! 
      PlaySoundsViewController 
     let recordedAudioURL = sender as! NSURL 
     playSoundsVC.recordedAudio = recordedAudioURL 
    } 
} 

}

ответ

0
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if (segue.identifier == "stopRecording") { 
     let playSoundsVC = segue.destinationViewController as! PlaySoundViewController 
     let recordedAudioURL = sender as! NSURL 
     playSoundsVC.recordedAudioURL = recordedAudioURL 
    } 
} 
0

добавить вар recordedAudioURL: URL! к файлу PlaySoundsViewController это переменная, которая содержит url в следующем классе, который был отправлен из текущего класса. счастливое кодирование :)

Смежные вопросы