如何在应用程序中使用 swift 流式传输 mp3 文件?
How do i stream a mp3 file with swift in an app?
我有一个 MP3 文件,我希望能够使用 'Media Player' 框架播放该文件。如何将此文件上传到 URL?我试过将它放在 YouTube 上,然后将 YouTube URL 放在应用程序中,但它不起作用。我该怎么办?
这是我的应用程序代码:
import UIKit
import MediaPlayer
class AudioViewController: UIViewController {
var movie:MPMoviePlayerViewController?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
self.playAudio("https://www.youtube.com/embed/tQsxOtH8-RQ")
}
func playAudio(URL:String){
let movieurl:NSURL? = NSURL(string: "\(URL)")
if movieurl != nil {
self.movie = MPMoviePlayerViewController(contentURL: movieurl!)
}
if self.movie != nil {
self.presentViewController(self.movie!, animated: true, completion: nil)
self.movie?.moviePlayer.play()
}
}
}
你的代码没问题。下面的代码片段也有效。您当前遇到的问题是由于尝试在 MPMoviewPlayerViewController
中播放 youtube/vimeo 流造成的。如果你想从这些网站流式传输,你将不得不使用 UIWebView。 GitHub 和其他地方有一些自定义播放器,但如果您使用下面的代码片段并将 URL 替换为您自己网站(即 WordPress)上某处托管的 mp3,则播放效果会很好。
var url = NSURL(string: "non-youtube/vimeo URL")
var mediaPlayerController = MPMoviePlayerViewController(contentURL: url)
self.presentViewController(mediaPlayerController, animated: true, completion: nil)
mediaPlayerController.moviePlayer.prepareToPlay()
mediaPlayerController.moviePlayer.play()
希望对您有所帮助。
仅供参考,确保添加 MediaPlayer 框架并将 import MediaPlayer
行添加到 class.
的顶部
我有一个 MP3 文件,我希望能够使用 'Media Player' 框架播放该文件。如何将此文件上传到 URL?我试过将它放在 YouTube 上,然后将 YouTube URL 放在应用程序中,但它不起作用。我该怎么办?
这是我的应用程序代码:
import UIKit
import MediaPlayer
class AudioViewController: UIViewController {
var movie:MPMoviePlayerViewController?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
self.playAudio("https://www.youtube.com/embed/tQsxOtH8-RQ")
}
func playAudio(URL:String){
let movieurl:NSURL? = NSURL(string: "\(URL)")
if movieurl != nil {
self.movie = MPMoviePlayerViewController(contentURL: movieurl!)
}
if self.movie != nil {
self.presentViewController(self.movie!, animated: true, completion: nil)
self.movie?.moviePlayer.play()
}
}
}
你的代码没问题。下面的代码片段也有效。您当前遇到的问题是由于尝试在 MPMoviewPlayerViewController
中播放 youtube/vimeo 流造成的。如果你想从这些网站流式传输,你将不得不使用 UIWebView。 GitHub 和其他地方有一些自定义播放器,但如果您使用下面的代码片段并将 URL 替换为您自己网站(即 WordPress)上某处托管的 mp3,则播放效果会很好。
var url = NSURL(string: "non-youtube/vimeo URL")
var mediaPlayerController = MPMoviePlayerViewController(contentURL: url)
self.presentViewController(mediaPlayerController, animated: true, completion: nil)
mediaPlayerController.moviePlayer.prepareToPlay()
mediaPlayerController.moviePlayer.play()
希望对您有所帮助。
仅供参考,确保添加 MediaPlayer 框架并将 import MediaPlayer
行添加到 class.