2

プレーヤー ファクトリのすべてのパラメーターを設定しinit、プレビュー用にプレーヤーを準備した後、プレーヤーがプレーヤーの状態 (1) によって初期化されていることがわかります。また、バッファ コールバックはいくつかの数値を出力します。

playしかし、メソッドを呼び出そうとすると、 [RealPLayer BufferFlushed].

私には null 参照の問題のように思えますが、プレーヤー ファクトリ クラスはシングルトンであり、init.

どうなり得るか?

プレーヤーの初期化

    - (id)init {
        if (self = [スーパー初期化]) {
            deezerPlayer = [PlayerFactory createPlayerWithNetworkType:NetWork_WIFI_AND_3G
                                              andBufferProgressInterval:50.f];
            [deezerPlayer setPlayerDelegate:self];
            [deezerPlayer setBufferDelegate: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 メソッドを呼び出します

 

    - (無効)再生 {

        [deezerPlayerプレイ];

    }

この時点で、エラーが発生します

これは呼び出しクラスです

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


    }



    - (IBAction)togglePlayPause:(id)送信者
    {
        if(playPause.selected) {
                [[playerController currentPlayer] 一時停止];
                [playPause setSelected:NO];
            }
        } そうしないと {
                [[playerController currentPlayer] プレイ];
                [playPause setSelected:YES];


        }

    }

プレーヤー コントローラーの現在のプレーヤー インスタンスは、他のクラスの deezerplayer であることに注意してください。

4

1 に答える 1