简体   繁体   中英

Download and play mp3 file from URL

I have downloaded a mp3 file but i'm not able to play it. The file is downloaded, i've checked but when i try to play the local file, nothing happens. If i directly play it without downloading it, it plays.

- (IBAction)downloadTrack:(id)sender {

    NSData *soundData = [NSData dataWithContentsOfURL:self.song.ticket.url];
    NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *filePath = [documents stringByAppendingPathComponent:self.song.slug];
    [soundData writeToFile:filePath atomically:YES];

    NSURL *urlFile = [NSURL URLWithString:filePath];
    AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:urlFile error:nil];
    player.numberOfLoops = -1; //Infinite

    [player play];
}
- (void)viewDidLoad
{
    [super viewDidLoad];

    // Download
    NSString *urlString = @"https://oi.net/songs/5-dope-ski-128k.mp3";
    NSURL *url = [[NSURL alloc] initWithString:urlString];
    NSData *soundData = [NSData dataWithContentsOfURL:url];
    NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *filePath = [documents stringByAppendingPathComponent:@"5-dope-ski-128k.mp3"];
    [soundData writeToFile:filePath atomically:YES];

    // Play
    NSString *filename = @"Ola.mp3";
    NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
    NSString *documentsDirectory = [pathArray objectAtIndex:0];
    NSString *yourSoundPath = [documentsDirectory stringByAppendingPathComponent:filename];

    NSURL *soundUrl;
    if ([[NSFileManager defaultManager] fileExistsAtPath:yourSoundPath])
    {
        soundUrl = [NSURL fileURLWithPath:yourSoundPath isDirectory:NO];
    }

    // Create audio player object and initialize with URL to sound
    _audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];
    [_audioPlayer play];
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM