【问题标题】:Play Audio from URL using AVAudioPlayer使用 AVAudioPlayer 从 URL 播放音频
【发布时间】:2016-03-08 07:18:44
【问题描述】:

我正在从下面给出的 URL 播放音频

"http://sumeetmusiclocal.wsisites.net/Songs/KashyalaLavato (Lavani).mp3"

通过使用下面给出的代码

NSString *urlString = @"http://sumeetmusiclocal.wsisites.net/Songs/Kashyala Lavato (Lavani).mp3";
NSURL *audioFileLocationURL = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileLocationURL error:&error];
[audioPlayer setNumberOfLoops:-1];

if (error) {
    NSLog(@"%@", [error localizedDescription]);

    [[self volumeControl] setEnabled:NO];
    [[self playPauseButton] setEnabled:NO];

    [[self alertLabel] setText:@"Unable to load file"];
    [[self alertLabel] setHidden:NO];
} else {
    [[self alertLabel] setText:[NSString stringWithFormat:@"%@ has loaded", @"HeadspinLong.caf"]];
    [[self alertLabel] setHidden:NO];

    //Make sure the system follows our playback status
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];

    //Load the audio into memory
    [audioPlayer prepareToPlay];
}

但我收到错误提示

Printing description of error:
Error Domain=NSOSStatusErrorDomain Code=2003334207 "(null)"
2016-03-08 12:43:45.835 SumeetApp[1839:78581] The operation couldn’t be completed. (OSStatus error 2003334207.)

谁能帮我解决这个错误或建议我用其他方法从 url 播放音频。

谢谢

【问题讨论】:

    标签: ios objective-c iphone xcode avaudioplayer


    【解决方案1】:

    试试这个

    AVURLAsset *asset = [AVURLAsset assetWithURL:[NSURL URLWithString:@"http://clips.vorwaerts-gmbh.de/VfE_html5.mp4"]];
    
    AVPlayerItem *playerItem1 = [AVPlayerItem playerItemWithAsset:asset];
    AVPlayer *player1 = [AVPlayer playerWithPlayerItem:playerItem1];
    AVPlayerLayer *playerLayer1 = [AVPlayerLayer playerLayerWithPlayer:player1];
    playerLayer1.videoGravity = AVLayerVideoGravityResizeAspectFill;
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        playerLayer1.frame = self.view.frame;
    });
    
    [self.view.layer insertSublayer:playerLayer1 atIndex:1];
    [player1 play];
    

    希望这对你有用。

    【讨论】:

      【解决方案2】:
      AVPlayer *player = [[AVPlayer alloc]initWithURL:[NSURL URLWithString:@"http://sumeetmusiclocal.wsisites.net/Songs/Kashyala Lavato (Lavani).mp3"]];  
      [player play];
      

      试试这个对我有用的代码。

      【讨论】:

        【解决方案3】:

        试试这个

        NSURL *url = [NSURL URLWithString:@"YOUR_MP3URL"];
        self.playerItem = [AVPlayerItem playerItemWithURL:url];
        self.player = [AVPlayer playerWithPlayerItem:playerItem];
        self.player = [AVPlayer playerWithURL:@"YOUR_MP3URL"];
        

        为了玩

        [self.player play];
        

        希望这会有所帮助。

        【讨论】:

          【解决方案4】:

          错误:

          您试图访问一个不存在的文件。

          所以,initWithContentsOfURL:audioFileLocationURL 将返回 nil

          播放音频:

          NSURL *url = [NSURL URLWithString:@"<URL>];
          
          
              self.playerItem = [AVPlayerItem playerItemWithURL:url];
          
              self.player = [AVPlayer playerWithPlayerItem:playerItem];
          
              self.player = [AVPlayer playerWithURL:<URL>];
          
             [player play];
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-02-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多