【问题标题】:AVPlayer can't play remote MP3 (iOS 8 beta 4) [duplicate]AVPlayer 无法播放远程 MP3(iOS 8 beta 4)[重复]
【发布时间】:2014-09-25 09:25:17
【问题描述】:

我在这里查看了很多解决方案,似乎可以归结为这两种播放远程 MP3 的方式:

用 Swift 编写(因为所有答案都在 Objective-C 中):

    let url = "http://megdadhashem.wapego.ru/files/56727/tubidy_mp3_e2afc5.mp3"
    let playerItem = AVPlayerItem(URL:NSURL(string:url))
    let player = AVPlayer(playerItem:playerItem)
    player.play()

    let fileData = NSData(contentsOfURL:NSURL(string:"http://megdadhashem.wapego.ru/files/56727/tubidy_mp3_e2afc5.mp3"))    
    let audioPlayer = AVAudioPlayer(data:fileData, error:nil)       
    audioPlayer.play()

但似乎两者都不起作用。我错过了什么吗?

【问题讨论】:

  • player 需要是一个属性,这样播放器才不会过早重新分配
  • 谢谢!这确实是解决方案。

标签: ios swift avplayer ios8


【解决方案1】:

在 NSData 中播放要转换的文件。

 NSData  *audioData = [NSData dataWithContentsOfFile:filename];
 AVAudioPlayer *audio= [[AVAudioPlayer alloc] initWithData:audioData error:nil];
 self.player = audio;
 [[self player] play];

【讨论】:

  • 这不是我做的第二种方式吗(我只是在 Swift 中做的)?
  • AVAudioPlayer 是否适用于流式音频,尝试了此代码但无法使其工作。
  • 这正是我遇到的问题。 AVAudioPlayer 仅在转换为 NSData 时有效。
  • NSData *_objectData = [NSData dataWithContentsOfURL:[NSURL URLWithString:streaming_path]]; NSError *错误; AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithData:_objectData error:&error]; audioPlayer.numberOfLoops = 0; audioPlayer.volume = 1.0f; [音频播放器准备播放]; [音频播放器播放]; [[self player] play];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
相关资源
最近更新 更多