解決済み:私は完全な馬鹿です。以前は、1 つのボタンのイメージを変更するのではなく、2 つのボタン (再生と一時停止) を使用して非表示にしていました。私はばかげてこのコード行を見落としていました: playButton.hidden = YES
.
カスタムMPMoviePlayerController
コントロールを構築しています。pause.png
ボタンの画像をwhenに設定しようとしていますMPMoviePlaybackState == MPMoviePlaybackStatePlaying
。それ以外の場合は、に設定する必要がありplay.png
ます。このステートメントは、同じメソッド currentPlaybackTime
が に設定された状態で 0.5 秒ごとに実行されUILabel
ます。
何らかの理由で、 に設定されませんpause.png
。ボタンが消えるだけです。ただし、状態は正しくログPlaying
に記録されます。not playing
.h
@property (retain) UIImage *playBtnBG;
@property (retain) UIImage *pauseBtnBG;
.m
- (void)viewDidLoad
{
playBtnBG = [UIImage imageNamed:@"play.png"];
pauseBtnBG = [UIImage imageNamed:@"pause.png"];
}
- (void)updatePlaybackTime:(NSTimer*)theTimer
{
if (!sliding) {
int playbackTime = moviePlayer.currentPlaybackTime;
timeLabel.text = [NSString stringWithFormat:@"%d:%02d", (playbackTime / 60), (playbackTime % 60)];
playbackSlider.value = playbackTime;
}
if (moviePlayer.playbackState == MPMoviePlaybackStatePlaying) {
NSLog(@"Playing");
[playButton setImage:pauseBtnBG forState:UIControlStateNormal];
}
else {
NSLog(@"not playing");
[playButton setImage:playBtnBG forState:UIControlStateNormal];
}
}