AVAudioPlayer 无法播放 MP3 文件

AVAudioPlayer cannot play MP3 file

我有两个 MP3 文件。我可以播放第一个文件,但不能播放 iOS.

上的第二个文件

我正在使用 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

我很紧张,因为我可以使用 VLC 或 iTunes 在 mac 上很好地播放它们。但是,我的 iOS 播放器无法处理第二个剪辑。

第二个有什么问题?

这是我能玩的。 https://www.dropbox.com/s/l93b4f4n63oihf0/cut.mp3?dl=0

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

谢谢。

它对我来说很好用。检查下面的代码

Objective 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

Swift

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.
    }


}