I am implementing AVAudioPlayer to play audio and it works perfectly well while playing files locally stored in the PC.
But when i give the url of some audio file over the internet, it fails sadly. Here's what the code looks like:
NSString *url = [[NSString alloc] init];
url = @"http://files.website.net/audio/files/audioFile.mp3";
NSURL *fileURL = [[NSURL alloc] initWithString: url];
AVAudioPlayer *newPlayer =[[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: nil];
Could anybody please point out the problem and what could be done?
Thanks!
Use AVPlayer to stream audio/video based on http url's. It will work fine. AVAudioPlayer is for local files. Here's the code
NSURL *url = [NSURL URLWithString:url];
self.avAsset = [AVURLAsset URLAssetWithURL:url options:nil];
self.playerItem = [AVPlayerItem playerItemWithAsset:avAsset];
self.audioPlayer = [AVPlayer playerWithPlayerItem:playerItem];
[self.audioPlayer play];
This is what the Apple docs say:
The AVAudioPlayer
class does not provide support for streaming audio based on HTTP URL's. The URL used with initWithContentsOfURL:
must be a File URL (file://
). That is, a local path.
I tried other method initWithData on AVAudioPlayer instead of initWithContentsOfURL. First try to get MP3 file into NSData and then play this data.
Look at my code here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With