Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios MPNowPlayingFocenter播放暂停图像未更改_Ios_Objective C_Mpnowplayinginfocenter - Fatal编程技术网

Ios MPNowPlayingFocenter播放暂停图像未更改

Ios MPNowPlayingFocenter播放暂停图像未更改,ios,objective-c,mpnowplayinginfocenter,Ios,Objective C,Mpnowplayinginfocenter,我正在使用下面的代码。一旦应用程序进入后台,这段代码就能正常工作。若应用程序并没有进入后台,我们尝试播放和暂停当前播放的歌曲,那个么播放和暂停图像不会改变。Ad每次断点在此案例中移动时,UIEventSubjectRemoteControlPause:案例 albumArt= [[MPMediaItemArtwork alloc] initWithImage: img.image]; NSDictionary *playingNowInfo = @{MPMediaItem

我正在使用下面的代码。一旦应用程序进入后台,这段代码就能正常工作。若应用程序并没有进入后台,我们尝试播放和暂停当前播放的歌曲,那个么播放和暂停图像不会改变。Ad每次断点在此
案例中移动时,UIEventSubjectRemoteControlPause:
案例

albumArt= [[MPMediaItemArtwork alloc] initWithImage: img.image];
            NSDictionary *playingNowInfo = @{MPMediaItemPropertyTitle: (self.currentItem.songname==nil) ? (@"") : (self.currentItem.songname),
                                             MPMediaItemPropertyPlaybackDuration: @(self.currentItem.duration),
                                             MPMediaItemPropertyArtist:[MusicSetting getArtistName],
                                             MPMediaItemPropertyAlbumTitle:(self.currentItem.albumname==nil) ? (@"") : (self.currentItem.albumname),
                                             MPNowPlayingInfoPropertyPlaybackRate: @(self.player.rate),
                                             MPNowPlayingInfoPropertyElapsedPlaybackTime: @(CMTimeGetSeconds(self.player.currentItem.currentTime)),
                                             MPMediaItemPropertyArtwork:albumArt,
                                             };
            [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = playingNowInfo;

#pragma mark - Remote Control

- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {

  //  [self.manager remoteControlReceivedWithEvent:receivedEvent];
    if (receivedEvent.type == UIEventTypeRemoteControl) {

        switch (receivedEvent.subtype) {

            case UIEventSubtypeRemoteControlPlay:
                [self Onclick_Play_Pause:self];
                break;

            case UIEventSubtypeRemoteControlPause:
                [self Onclick_Play_Pause:self];
                 break;

            case UIEventSubtypeRemoteControlTogglePlayPause:

                //if ([self.manager.player isPlaying])
                if(self.manager.player.rate != 0)
                {
                    [self.manager.player pause];
                }

                else {
                    [self.manager.player play];
                }
                break;
            case UIEventSubtypeRemoteControlNextTrack:
                [self Onclick_next:self];
                NSLog(@"Next song play");
                break;
            case UIEventSubtypeRemoteControlPreviousTrack:
                [self Onclick_prev:self];
                NSLog(@"Prev song play");
                break;

            default:
                break;
        }
    }
}

- (IBAction)Onclick_Play_Pause:(id)sender {
    (AppObj).playerview_height=playviewHeight;

    if(self.manager.player.rate != 0)
    {
        [MusicSetting set_SongStatus:@"Pause"];
        [self.Play_PauseBtn setImage:[UIImage imageNamed:@"pauseImg"] forState:UIControlStateNormal];
        [self.manager pause];
    }
    else {
        [MusicSetting set_SongStatus:@"Play"];
        [MusicSetting set_isMusicPlay:@"Playing"];

        [self.Play_PauseBtn setImage:[UIImage imageNamed:@"playImg"] forState:UIControlStateNormal];

        [self.manager play];
    }
}

谢谢

您好,请检查是否在info.plist中添加了以下内容


您有以下代码

 case UIEventSubtypeRemoteControlPlay:
            [self Onclick_Play_Pause:self];
            break;

        case UIEventSubtypeRemoteControlPause:
            [self Onclick_Play_Pause:self];
             break;

        case UIEventSubtypeRemoteControlTogglePlayPause:

            //if ([self.manager.player isPlaying])
            if(self.manager.player.rate != 0)
            {
                [self.manager.player pause];
            }

            else {
                [self.manager.player play];
            }
            break;

在前两种情况下,你调用了你的方法,但在第三种情况下没有调用。你能分享你方法的定义吗?

请上传你的
-(iAction)Onclick\u Play\u Pause:(id)sender
此事件音乐停止了吗?@monikapel你也问了同样的问题,请不要在没有阅读自己评论的情况下发表评论。
- (IBAction)Onclick_Play_Pause:(id)sender {
     MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
        NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
    (AppObj).playerview_height=playviewHeight;

    if(self.manager.player.rate != 0)
    {
        [MusicSetting set_SongStatus:@"Pause"];
        [self.Play_PauseBtn setImage:[UIImage imageNamed:@"pauseImg"] forState:UIControlStateNormal];
        [self.manager pause];
         //set playback rate
        [playingInfo setObject:[NSNumber numberWithFloat:0] forKey:MPNowPlayingInfoPropertyPlaybackRate];
    }
    else 
    {
        [MusicSetting set_SongStatus:@"Play"];
        [MusicSetting set_isMusicPlay:@"Playing"];

        [self.Play_PauseBtn setImage:[UIImage imageNamed:@"playImg"] forState:UIControlStateNormal];
        [self.manager play];
        //set playback rate
        [playingInfo setObject:[NSNumber numberWithFloat:1] forKey:MPNowPlayingInfoPropertyPlaybackRate];
    }
     center.nowPlayingInfo = playingInfo;

}