【问题标题】:Why is the sound not playing?为什么没有播放声音?
【发布时间】:2011-02-04 20:14:59
【问题描述】:

这是我的代码:

按下按钮:

-(void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
    [self dismissModalViewControllerAnimated:YES];
self.selectedSong = mediaItemCollection;
    NSLog(@"Selected song: %@", self.selectedSong);
}

稍后:

-(void)waitUntilSpeechIsDone {
    NSLog(@"Test");
    if ([audio isEqualToString:@"Music"]) {
    if ([musicWhenToStart isEqualToString:@"Before"]) {
        NSLog(@"Test");

        NSLog(@"Selected song: %@", self.selectedSong);
        [self.musicPlayer stop];
        [self.musicPlayer setQueueWithItemCollection:self.selectedSong];
        [self.musicPlayer play];
    }
    }   
}

定义为:

@interface RewriteViewController : UIViewController <MPMediaPickerControllerDelegate> {

    MPMediaItemCollection *selectedSong;

}
@property(nonatomic,retain) MPMusicPlayerController *musicPlayer;
@property(nonatomic,retain) MPMediaItemCollection *selectedSong;


MPMediaItemCollection *selectedSong;

然后两者都合成在.m文件中。

好的,所以上半场顺利通过。 NSLog 返回类似“Selected song:”然后 NSLog 返回“Test”,(我把它放在那里,所以我知道它有那么远,以防它由于某种原因在下一行崩溃)。然后当它到达下一行时,它会返回“Selected song: (null)”。

有什么想法吗?

编辑:两者都在 dealloc 中发布。

【问题讨论】:

  • 如果可以的话,请包括崩溃的堆栈跟踪。
  • 没有崩溃。它只是返回为 null,因此音频不会播放。

标签: iphone objective-c cocoa-touch mpmediaitemcollection


【解决方案1】:

查看您的界面文件,您似乎在声明MPMediaItemCollection *selectedSong; 两次:/ 我不确定这是否是发布问题时的拼写错误,但这可能与它有关。您的崩溃很可能与 selectedSong 在您不期望的某个时间点被释放有关,而错误的声明可能会导致这种情况。

【讨论】:

  • 我注释掉了最后一个。它仍然返回为 null。
  • 您没有发布selectedSong 或在您的应用程序的其他任何地方使用它?这都在同一个班级,对吗? RewriteViewController
  • 该应用程序还可以选择执行以下代码,但始终为 1 或其他。这样做没有问题。这一切都在 RewriteViewController 中,是的。 if ([musicWhenToStart isEqualToString:@"Start"]) { [musicPlayer stop]; NSLog(@"selected song: %@", selectedSong); [musicPlayer setQueueWithItemCollection:self.selectedSong]; [musicPlayer play]; }
  • 嗯,我会尝试在调试器上运行您的应用程序,并在整个应用程序生命周期中跟踪 selectedSong 的值。确保它没有在某处失效/发布。
猜你喜欢
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
相关资源
最近更新 更多