我的視圖控制器里放了一個按鈕。main bundle里放了一個1.mp3,按鈕每按一次就停止上次的音樂播放,開始下次音樂播放;此代碼在iOS4/5工作正常,iOS6中有嚴重的內(nèi)存泄露。如果1.mp3有5M大,iOS6下每次播放就會有5M的內(nèi)存不能釋放。代碼如下(開啟ARC):@implementation ViewController{ AVAudioPlayer *_player;
}
- (void)play
{ if (_player)
{
[_player stop];
_player = nil;
}
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"test.app/1.mp3"]; NSData *musicData = [[NSData alloc] initWithContentsOfFile:path]; AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:musicData error:nil];
player.volume = 1; if (player)
{
_player = player;
}
}
- (void)viewDidLoad
{
[super viewDidLoad]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(100, 100, 100, 100);
[button setTitle:@"play" forState:UIControlStateNormal];
[button addTarget:self action:@selector(play) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}@end
- 1 回答
- 0 關(guān)注
- 137 瀏覽
添加回答
舉報
0/150
提交
取消