【发布时间】: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