2015-12-16 66 views
-1

我有兩個MP3文件。我能夠播放第一個文件,但不能在iOS上播放第二個文件。AVAudioPlayer無法播放MP3文件

我正在使用AVAudioPlayer播放它們。

第一個文件,我能有以下信息。

0000000 49 44 33 03 00 00 00 00 21 76 54 49 54 32 00 00 
0000010 00 11 00 00 00 4e 68 6f 74 65 20 4d 61 20 53 65 
0000020 74 20 4e 61 65 4d 43 44 49 00 00 00 aa 00 00 45 


played.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, 
v1, 128 kbps, 44.1 kHz, JntStereo 

剪輯我無法播放具有以下信息。

0000000 49 44 33 04 00 00 00 00 00 5b 54 50 45 31 00 00 
0000010 00 0a 00 00 03 43 6f 6c 64 70 6c 61 79 00 54 49 
0000020 54 32 00 00 00 08 00 00 03 59 65 6c 6c 6f 77 00 

yellow.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, 
v2.5, 24 kbps, 8 kHz, Monaural 

我拉我的頭髮,因爲我可以在我的Mac上使用VLC或iTunes播放他們兩個都很好。但是,我的iOS播放器無法處理第二個剪輯。

第二個有什麼問題?

這是我可以玩的一個。 https://www.dropbox.com/s/l93b4f4n63oihf0/cut.mp3?dl=0

這是我不能玩的那個。 https://www.dropbox.com/s/0xrpyxwzqhb7dzf/yellow.mp3?dl=0

謝謝。

+0

你能夠播放音頻的IOS之外。我的意思是在iTunes或快速播放器? –

+0

@Muhammad yup。我能夠玩他們。 – moeseth

+0

@穆罕默德我已經添加了鏈接,看看你是否可以玩他們? – moeseth

回答

1

它對我來說工作得很好。檢查下面的代碼

目標C

#import "ViewController.h" 
#import <AVFoundation/AVFoundation.h> 

@interface ViewController() 
{ 
    AVAudioPlayer *_audioPlayer; 
} 
@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Construct URL to sound file 
    NSString *path = [NSString stringWithFormat:@"%@/yellow.mp3", [[NSBundle mainBundle] resourcePath]]; 
    NSURL *soundUrl = [NSURL fileURLWithPath:path]; 

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


- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 
@end 

斯威夫特

import UIKit 
import AVFoundation 

class ViewController: UIViewController { 
    var audioPlayer = AVAudioPlayer() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     let audioPath = NSBundle.mainBundle().pathForResource("yellow", ofType: "mp3") 
     do { 
      audioPlayer = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: audioPath!)) 
      audioPlayer .play() 
     } 
     catch { 
      print("Something bad happened. Try catching specific errors to narrow things down") 
     } 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


}