音频文件无法从服务器播放

Posted

技术标签:

【中文标题】音频文件无法从服务器播放【英文标题】:Audio file not play from server 【发布时间】:2013-03-19 09:25:56 【问题描述】:

我正在播放来自服务器的音频文件,但如果我播放本地文件则它不播放,那么它在这里播放是我的代码。

    //NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audiofile.mp3", [[NSBundle mainBundle] resourcePath]]];

NSURL *url = [NSURL URLWithString:@"http://celeritas-solutions.com/pah_brd_v1/productivo/1.mp3"];


NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;

if (audioPlayer == nil)
    NSLog([error description]);             
else 
    [audioPlayer play];

【问题讨论】:

【参考方案1】:

尝试使用MPMoviePlayerController 而不是AVAudioPlayer

NSURL *url = [NSURL URLWithString:@"http://celeritas-solutions.com/pah_brd_v1/productivo/1.mp3"];


mv = [[MPMoviePlayerController alloc] initWithContentURL:url];
mv.movieSourceType = MPMovieSourceTypeUnknown;
[self.view addSubview:mv.view];
[mv play];

【讨论】:

【参考方案2】:

使用此代码解决您的问题...

NSData *_objectData = [NSData dataWithContentsOfURL:[NSURL URLWithString:http://celeritas-solutions.com/pah_brd_v1/productivo/1.mp3]];
NSError *error;

audioPlayer = [[AVAudioPlayer alloc] initWithData:_objectData error:&error];
audioPlayer.numberOfLoops = 0;
audioPlayer.volume = 1.0f;
[audioPlayer prepareToPlay];

if (audioPlayer == nil)
    NSLog([error description]); 
else
    [audioPlayer play];

【讨论】:

以上是关于音频文件无法从服务器播放的主要内容,如果未能解决你的问题,请参考以下文章

Expo AV 音频无法在 iOS/iPhone 上播放

我目前无法停止通过 ajax 调用在服务网页上播放音频

从服务器 Android 播放音频文件 [关闭]

音频队列服务录制到 .mp4 文件,无法播放。和魔术饼干问题

Gstreamer 无法通过 rtspsrc 播放音频

从数据库播放多个音频文件