简体   繁体   中英

unable to play mp3 file in avplayer in ios app

I tried to play mp3 file using AVP player. But i couldn't play it..my code is

NSString *fileurl=[FILE_URL_Array objectAtIndex:indexPath.row];
NSArray *parts = [fileurl componentsSeparatedByString:@"/"];
NSString *filename = [parts lastObject];

NSLog(@"file name is %@",filename);

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString  *documentsDirectory = [paths objectAtIndex:0];

NSString  *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,filename];
//NSString* documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

NSString* foofile = [documentsDirectory stringByAppendingPathComponent:filename];
NSLog(@"foofile %@",foofile);
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:foofile];
NSLog(@"boolean value is %hhd",fileExists);


if (fileExists)
{

    NSURL *audioURL = [NSURL fileURLWithPath:filePath];
    NSLog(@"existig url is%@",audioURL);

    NSData *urlData =[NSData dataWithContentsOfURL:audioURL];
   // NSString *sourcePath =[audioURL path];
    //UISaveVideoAtPathToSavedPhotosAlbum(sourcePath,nil,nil,nil);
    NSString  *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,filename];
    [urlData writeToFile:filePath atomically:YES];


    audioPlayer = [[AVAudioPlayer alloc]initWithData:urlData  error:NULL];
    audioPlayer.delegate = self;
    [audioPlayer play];
}

but i am unable to play that audio file....Please give your valuable solution.Thanks in advance...

You're currently appending documentsDirectory twice.

NSString  *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,filename];
//NSString* documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

NSString* foofile = [documentsDirectory stringByAppendingPathComponent:filename];

Once in filePath, and again in foofile.

Additionally, you seem to be doing a whole bunch of extra processing that you don't need to be doing. You should be able to create the audio player from the initial file url:

NSString *fileurl=[FILE_URL_Array objectAtIndex:indexPath.row];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL urlWithString:fileUrl] error:&error];
if (error != nil) {
    NSLog(@"Error creating player: %@", error);
}
audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
[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