2016-11-28 21 views
0

私はオーディオプレーヤーを迅速に開発しており、コントロールするために2つのボタン(再生と停止)が必要です。ユーザーがアプリを開いたとき、MP3オーディオファイルが自動的に起動し、基本的にswift3でAVAudioPlayerを再生および停止する方法は?

override func viewDidLoad() { 
    super.viewDidLoad() 

let urlstring = "http://radio.spainmedia.es/wp-content/uploads/2015/12/tailtoddle_lo4.mp3" 
    let url = NSURL(string: urlstring) 
    print("the url = \(url!)") 
    downloadFileFromURL(url: url!) 

          } 

    func downloadFileFromURL(url:NSURL) { 
    var downloadTask:URLSessionDownloadTask 
    downloadTask = URLSession.shared.downloadTask(with: url as URL, completionHandler: { (URL, response, error) -> Void in 

     self.play(url: URL! as NSURL) 

    }) 

    downloadTask.resume() 

             } 

func play(url:NSURL) { 
    print("playing \(url)") 

    do { 
     self.SoundPlayer = try AVAudioPlayer(contentsOf: url as URL) 
     SoundPlayer.prepareToPlay() 
     SoundPlayer.volume = 1.0 
     SoundPlayer.play() 
    } catch let error as NSError { 
     //self.player = nil 
     print(error.localizedDescription) 
    } catch { 
     print("AVAudioPlayer init failed") 
    } 

         } 

@IBAction func Play(_ sender: Any) { 

    SoundPlayer.play() 

} 


@IBAction func Stop(_ sender: Any) { 

    SoundPlayer.stop() 

} 

:私は、次のコードを使用しています。したがって、私は2つの追加のボタン、開始と停止を作成し、私はそれらと一緒にこのオーディオプレーヤーを制御したい。あなたはAudio Playerに接続されていないので、どうすればいいのかアドバイスしてください。

+0

あなたはSoundPlayerのは、再生/停止のfuncsでnilでないことを確認しましたか? –

+0

彼らはまったく無名ですが、私はそれらを修正する方法がわかりません – Dakata

+0

もし彼らが無ければ、私はあなたがどこにそれらへの参照を失っていると思います。 var SoundPlayerをどのように定義していますか? –

答えて

0

ストリーミング中にファイルを再生することを目的としている場合は、URLのデータを取得し、AVAudioPlayerに渡します。

if let theURL = URL(string: "http://radio.spainmedia.es/wp-content/uploads/2015/12/tailtoddle_lo4.mp3") { 
    if let data = try? Data(contentsOf: theURL){ 
     if let audioPlayer = try? AVAudioPlayer(data: data) { 
     print("Done") 
     audioPlayer.play() 
     } else { 
     print("Noo") 
     } 

    } 
} 

AVAudioPlayer(contentsOf: url as URL)は、リモートロケーションからデータを取得できないことがよくあります。

あなたはまた、あなたのファイルを再生するには、このようなAVPlayerなどの他のオプションを確認することができます

how can i play remote .mp3 file in my ios application?

関連する問題