启动应用后,我正在后台播放音频文件。该函数在viewDidLoad中调用。
-(void)playsong
{
NSString *songUrl = [[NSBundle mainBundle] pathForResource:@"chant" ofType:@"m4a"];
NSData *songFile = [NSData dataWithContentsOfFile:songUrl];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithData:songFile error:&error ];
[audioPlayer play];
}
当用户按下主页按钮,并且歌曲的当前位置为10秒时,歌曲将停止播放。 但是当用户再次打开应用程序时,歌曲将从相同的位置开始。
我希望每次打开应用程序时都从头开始。
另外,由于内存原因,释放内存不是更好吗?
我试图从
调用该函数- (void)viewWillAppear:(BOOL)animated
然后在
中将其设置为nil- (void)viewWillDisappear:(BOOL)animated
但方法 - (void)viewWillDisappear :( BOOL)动画未被调用。
答案 0 :(得分:1)
如果viewWillDisappear不适合您,请尝试在NSNotification中心添加一个观察者,该中心在应用程序didEnterBackground时调用方法。像这样:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(enteredBackground:)
name:UIApplicationDidEnterBackgroundNotification
object:nil];
然后将您的代码添加到此方法中:
-(void)enteredBackground:(NSNotification *)notification {
}
希望这有帮助!
<强>更新强>
好的,所以从你想要访问about us视图中的音频对象的位置开始,试试这个:
HomeViewController *HomeVC = [HomeViewController alloc] init];
HomeVC.audioPlayer...//then do what you want with it
只要您在家庭VC中声明了音频对象,那么这应该可行。
确保您已在其中一个关于我们的视图控制器,文件中导入了homeview控制器。