我分配初始化后 AVAudioPlayer 为零

Posted

技术标签:

【中文标题】我分配初始化后 AVAudioPlayer 为零【英文标题】:AVAudioPlayer is nil after i alloc init 【发布时间】:2015-01-05 07:26:45 【问题描述】:

我在我的项目中被困在 AVAudioPlayer。情况是, 在 CollectionViewController 的“didSelectItemAtIndexPath”方法中,我像下面这样分配和初始化 AVAudioPlayer,

dict=[plist objectAtIndex:indexPath.item];

    NSURL* urlPath=[NSURL new];
    urlPath=[NSURL URLWithString:[dict objectForKey:@"FilePath"]];
     NSError *error = nil;
    self.player=[[AVAudioPlayer alloc]initWithContentsOfURL:urlPath error:&error];
    NSLog(@"Error[%@]",[error localizedDescription]);
    [self.player setDelegate:self];
    [self.player prepareToPlay];

但在此之后,它仍然是空的.. 首先,我尝试不让玩家拥有财产。但没有运气.... 所以我尝试使用this

【问题讨论】:

你有没有仔细检查 urlPath 不为零? @WorldOfWarcraft "urlPath" 不为零.. 你把你的代码放在didSelectItemAtIndexPath,这意味着播放器只有在你选择的时候才会启动。 在此处发布您的代码。 【参考方案1】:

这样试试

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath  


    NSLog(@" selected data ==%@",[yoururlarray objectAtIndex: indexPath.row]);

 urlPath=[yoururlarray objectAtIndex: indexPath.row]);

    self.player=[[AVAudioPlayer alloc]initWithContentsOfURL:urlPath error:nil];
    [self.player setDelegate:self];
    [self.player prepareToPlay];


    

【讨论】:

以上是关于我分配初始化后 AVAudioPlayer 为零的主要内容,如果未能解决你的问题,请参考以下文章

(iphone) 如何使用 AVAudioPlayer 顺序播放声音?

在 applicationDelegate 中初始化和分配视图控制器使 viewController 中的所有 UI 元素为零

如何将“AVAudioPlayer.Type”类型的值分配给“AVAudioPlayer?”

分配有效的 UIImage 后 UIImageView.image 始终为零

iPhone:AVAudioPlayer 并不总是在设备上播放音频

使用 AVAudioPlayer 在后台播放声音序列