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

时间:2013-12-15 22:45:57

标签: ios deezer

在设置播放器工厂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 :(得分:0)

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