web-dev-qa-db-ja.com

IOS 8 Swift AVAudioPlayerがリモートオーディオを再生する(wowzaサーバー)

私はIOSプログラマーではありませんが、wowzaサーバーからのオーディオストリームを再生する簡単なアプリが必要です。ここに私のコードがあります。エラーもオーディオもありません。ガイダンスやヘルプはありますか?

    import UIKit
    import AVFoundation

    class ViewController: UIViewController {

         var player = AVAudioPlayer()

        override func viewDidLoad() {
            super.viewDidLoad()

            var fileURL: NSURL = NSURL(string: "http://url----.com/playlist.m3u8")

            var error:NSError?
            player = AVAudioPlayer(contentsOfURL: fileURL, error: &error)

            if player.prepareToPlay() && player.play(){
                println("yes")
            } else {
                println("no")
            }
        }
16
David Turton

これは私のために働きました:

var player = AVPlayer()

func configureView() {

    let url = "http://stream.your.url.com"
    let playerItem = AVPlayerItem( URL:NSURL( string:url ) )
    player = AVPlayer(playerItem:playerItem)
    player.rate = 1.0;
    player.play()

}
24
2075

Swift 2.およびiOS 9

do {
    let url = "http://yourdomain.com/file.mp3"
    let fileURL = NSURL(string:url)
    let soundData = NSData(contentsOfURL:fileURL!)
    self.audioPlayer = try AVAudioPlayer(data: soundData!)
    audioPlayer.prepareToPlay()
    audioPlayer.volume = 1.0
    audioPlayer.delegate = self
    audioPlayer.play()
} catch {
    print("Error getting the audio file")
}
10
Jsonras

このアンサーは私を助けました: *。m4pへの外部URLを持つAVAudioPlayer

URLをNSDataに変換する必要がありました。

let url = "http://megdadhashem.wapego.ru/files/56727/tubidy_mp3_e2afc5.mp3"
let fileURL = NSURL(string:url)
let soundData = NSData.dataWithContentsOfURL(fileURL, options: nil, error: nil)
var error: NSError?
self.player = AVAudioPlayer(data: soundData, error: &error)
if player == nil {
  if let e = error {
    println(e.localizedDescription)
  }
}
player.prepareToPlay()
player.volume = 1.0
player.delegate = self
player.play()
3
Billy Coover

IOS 9:App Transport Security(ATS)が構成されているので注意してください。

<key>NSAppTransportSecurity</key>
<dict>
   <key>NSExceptionDomains</key>
   <dict>
      <key>yourserver.com</key>
      <dict>
         <!--Include to allow subdomains-->
         <key>NSIncludesSubdomains</key>
         <true/>
         <!--Include to allow HTTP requests-->
         <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
         <true/>
         <!--Include to specify minimum TLS version-->
         <key>NSTemporaryExceptionMinimumTLSVersion</key>
         <string>TLSv1.1</string>
      </dict>
   </dict>
</dict>

スウィフト2:

let url = "http://yourserver.com/source.mp3"
    let playerItem = AVPlayerItem(URL:NSURL(string:url)!)
    audio = AVPlayer(playerItem:playerItem)
    audio.rate = 1.0;
    audio.play()
2
Just van Bloom

aVPlayerを使用:

var player:AVPlayer!
var steamingURL:NSURL = NSURL(string:playerURL)
player = AVPlayer(URL: steamingURL)
player.play()
0
Ramesh

//グローバルにAVPlayerインスタンスを作成

var avPlayer:AVPlayer!


override func viewDidLoad() {
    super.viewDidLoad()
    let urlString = "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"
    let url = NSURL(string: urlString)!
    avPlayer = AVPlayer(url: url as URL)

    print("About to play...")
    avPlayer.play()
   print("isplaying")
}
0

Swiftのエラーをチェックするには、次を使用します。

if let errorDetails = error {
    println("Error creating player: \(errorDetails.localizedDescription)")
} else {
    if player.prepareToPlay() && player.play(){
        println("yes")
    } else {
        println("no")
    }
}
0
Raptor