首页 文章

调用[playerFactory play]方法时访问错误

提问于
浏览
2

在设置播放器工厂 init 的所有参数后,准备播放器进行预览,我知道我的播放器是由播放器状态(1)初始化的 . 此外,缓冲区回调打印出一些数字 .

但是当我尝试调用 play 方法时,它会给出关于 [RealPLayer BufferFlushed] 的错误访问错误 .

对我来说,这似乎是一个空参考问题,但玩家工厂类是一个单例,我已经在 init 中声明了它 .

会是什么呢?

玩家初始化

- (id)init {
        if (self = [super init]) {
            deezerPlayer = [PlayerFactory createPlayerWithNetworkType:NetWork_WIFI_AND_3G
                                              andBufferProgressInterval:50.f];
            [deezerPlayer setPlayerDelegate:self];
            [deezerPlayer setBufferDelegate:self];
        }
        return self;
    }

这是从另一个类调用预览的准备,需要url和id

- (void) initPlayerForPreviewWithUrl:(NSString *)url andTrackId:(NSString *)trackId{
        NSLog(@"INIT PLAYER WITH LINK: %@ AND ID: %@",url,trackId);
        [deezerPlayer preparePlayerForPreviewWithURL:url trackID:trackId andDeezerConnect:[[deezerClass deezerSession] deezerConnect]];

    }

之后我从同一个其他类调用play方法

- (void)play {

        [deezerPlayer play];

    }

在这一点上,它给出了错误

这是调用类

- (void)setTheData{
            [[playerController currentPlayer] initPlayerForPreviewWithUrl:sop.currentSongLink andTrackId:sop.currentSongId];


    }



    - (IBAction)togglePlayPause:(id)sender
    {
        if(playPause.selected) {
                [[playerController currentPlayer] pause];
                [playPause setSelected:NO];
            }
        } else {
                [[playerController currentPlayer] play];
                [playPause setSelected:YES];


        }

    }

请注意,播放器控制器的当前播放器节点是其他类中的deezerplayer

1 回答

  • 0

    如果你给,错误的歌曲“id” - “streamId”匹配你得到那个EXC_BAD_ACCESS的玩家 . 另请注意,如果您尝试播放API的JSON响应中显示为“readable = 0”的歌曲,则可能会出现相同的错误 . 我希望Deezer能解决这个崩溃问题并给出相应的错误信息 .

相关问题