2015-09-09 4 views
0

Пожалуйста, решите мой вопрос, почему фоновая музыка не работает? Это мой код, надеюсь, кто-то сможет его решить.Фоновая музыка не работает, но нет ошибок?

// Просто форматировать его ..

@IBOutlet var UsernameTextField: UITextField! 
    @IBOutlet var PasswordTextField: UITextField! 
    @IBOutlet var EmailTextField: UITextField! 
    @IBAction func LogIn(sender: AnyObject) { 

    } 

    func Login(){ 
     var user = PFUser() 
     user.username = UsernameTextField.text! 
     user.password = PasswordTextField.text! 

     PFUser.logInWithUsernameInBackground(UsernameTextField.text, password: PasswordTextField.text, block: { 
      (User : PFUser?, Error : NSError?) -> Void in 

      if Error == nil{ 
       dispatch_sync(dispatch_get_main_queue()){ 
        var Storyboard = UIStoryboard(name: "Main", bundle: nil) 
        var MainVC : UIViewController = Storyboard.instantiateViewControllerWithIdentifier("MainVC") as! UIViewController 

        self.presentViewController(MainVC, animated: true, completion: nil) 


       } 

      } 
      else{ 


       NSLog("Sorry, you've typed either username or password wrongly.") 
      } 



     }) 

    } 


    @IBAction func signUpButton(sender: AnyObject) { 
     signUp() // Calling signUp function here that is declared below. 
    } 


    func signUp(){ 
     // Do sign up stuff. 
    } 


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

    playBackgroundMusic("IntroMusic") 
     backgroundMusicPlayer.play() 

     let soundFilePath = NSBundle.mainBundle().pathForResource("Background", ofType: "mp3") 
     let soundFileURL = NSURL(fileURLWithPath: soundFilePath!) 
     let player = AVAudioPlayer(contentsOfURL: soundFileURL, error: nil) 
     player.numberOfLoops = -1 //infinite 
     player.play() 

    func signUp(){ 
     var user = PFUser() 
     user.username = UsernameTextField.text! 
     user.password = PasswordTextField.text! 
     user.email = EmailTextField.text! 
    } 


    let user = PFUser() 
    user.username = "Name:" 
    user.password = "Pass:" 
    user.email = "Email:" 

    user.signUpInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in 
    if error == nil { 
     // Hooray! Let them use the app now. 
     } else { 
     // Examine the error object and inform the user. 
     } 
    } 

} 



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


} 



var backgroundMusicPlayer: AVAudioPlayer! 

func playBackgroundMusic(filename: String) { 

    //The location of the file and its type 
    let url = NSBundle.mainBundle().URLForResource("Background", withExtension: "mp3") 

    //Returns an error if it can't find the file name 
    if (url == nil) { 
     println("Could not find the file \(filename)") 
    } 

    var error: NSError? = nil 

    //Assigns the actual music to the music player 
    backgroundMusicPlayer = AVAudioPlayer(contentsOfURL: url, error: &error) 

    //Error if it failed to create the music player 
    if backgroundMusicPlayer == nil { 
     println("Could not create audio player: \(error!)") 
     return 
    } 

    //A negative means it loops forever 
    backgroundMusicPlayer.numberOfLoops = -1 
    backgroundMusicPlayer.prepareToPlay() 
    backgroundMusicPlayer.play() 
} 
+0

Вы должны объявить, что вы игрок за пределами viewDidLoad на уровне класса. –

ответ

1

Как Лео Dabus предложил объявить player экземпляр вне viewDidLoad метода и ваш код будет:

var player : AVAudioPlayer! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    let soundFilePath = NSBundle.mainBundle().pathForResource("Background", ofType: "mp3") 
    let soundFileURL = NSURL(fileURLWithPath: soundFilePath!) 
    player = AVAudioPlayer(contentsOfURL: soundFileURL, error: nil) 
    player.numberOfLoops = -1 //infinite 
    player.play() 
} 
+0

Это все еще не работает:/ – CrimZon

+0

Вы проверяете это? –

+0

Да, я это испытал. – CrimZon