1

ナビゲーションコントローラーで別のビューをプッシュするビューがあります。この2番目のビューでは、iPodアプリの場合と同じように、ユーザーが最初のビューに戻っても2番目のビューをポップして再生し続けたいオーディオを再生します。どうやってやるの?

4

1 に答える 1

1

ビューコントローラから再生するオーディオを抽象化する必要があります。これは、実際には関連する機能ではないためです(さらに、必要な操作を実行できるようになります)。指定した曲を再生し、一時停止/停止し、そこからステータス(isPlayingなど)を取得する機能を持つシングルトンオブジェクトを作成することをお勧めします。シングルトンとは何か/シングルトンの作成方法については詳しく説明しません。他のスタックオーバーフローの投稿とグーグル検索で結果が得られるためですが、基本的な前提は、クラスを作成してこのメ​​ソッドを追加することです。

+ (id)sharedInstance
{
    static dispatch_once_t dispatchOncePredicate = 0;
    __strong static id _sharedObject = nil;
    dispatch_once(&dispatchOncePredicate, ^{
        _sharedObject = [[self alloc] init];
    });
    return _sharedObject;
}

次に、次のようなメソッドを作成できます。

+ (void)playSongWithFile:(NSString *)fileName
{
    // retrieve the file and play it
}

また、シングルトンオブジェクトを#importするクラスから、次のコマンドを呼び出すことができます。

[[MySingleton sharedInstance] playSongWithFile:@"awesomesong.mp3"];

シングルトンオブジェクトは、一度だけインスタンス化でき、アプリの実行中は「存続」するオブジェクトであるため、View Controllerで何が起こっているかに関係なく、指示したとおりに実行を続けます。

于 2012-01-21T04:44:37.917 に答える