IPhone,音频MP3或M4A音频文件没有声音

时间:2014-01-16 22:15:10

标签: iphone audio ios7

我正在尝试在对象didSelectedIndex UITableViewController

中播放声音方法

音频文件是扩展名为m4a的文件,但我也尝试使用mp3文件,结果不会改变。

下面我发布我在TableViewController方法中实现的代码:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    NSString *soundFilePath = [NSString stringWithFormat:@"%@/testaudio.m4a", [[NSBundle mainBundle] resourcePath]];
    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
    NSLog(@"soundFileURL %@",soundFileURL);
    NSError *error;
    AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:&error];

    if(!player){
        NSLog(@"ERRORE: %@",error);
    }
    [player setDelegate:self];
    [player prepareToPlay];
    [player play];

}

我也直接在设备上试了但它仍然没有播放任何声音。

我还添加了一个AVSession类,如下所示:

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];

结果没有改变,有谁知道问题是什么?

1 个答案:

答案 0 :(得分:1)

试试这个(测试过):

AVAudioPlayer中的.m对象设置属性

@property(strong, nonatomic) AVAudioPlayer *player;

然后在您的

中添加此内容
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *soundFilePath;

    if ((soundFilePath = [[NSBundle mainBundle] pathForResource:@"testaudio" ofType:@"m4a"]))
    {
        NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
        NSError *error;
        self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:&error];

        if(self.player)
        {
            [self.player setDelegate:self];
            [self.player prepareToPlay];
            [self.player play];
        }
        else
        {
            NSLog(@"ERRORE: %@", error);
        }
    }
}

您的案件中不需要AVAudioSession