4

電話がロック/スタンバイされている場合でも、ローカルの .mp3 ファイルを再生できる必要がある PhoneGap を使用してアプリを構築しています。オーディオ プレーヤーは HTML5 で構築されており、正常に動作していますが、アプリを閉じるか電話の電源を切ると音楽が停止します。

このリンクUIWebView: HTML5 audio pauses in iOS 6 when app into background で与えられた答えに従ってみました

しかし、運が悪い...

他のインポート機能を使用して、上部のインポート コードを実行しました。また、AVFoundation フレームワークもターゲットに含めました。 

AppDelegate.m 内のコードは次のようになります。

/**
 * This is main kick off after the app inits, the views and Settings are setup here. (preferred -iOS4 and up)
 */
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{

    /* THE GOOD STUFF */
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    BOOL ok;
    NSError *setCategoryError = nil;
    ok = [audioSession setCategory:AVAudioSessionCategoryPlayback
                         error:&setCategoryError];
    if (!ok) {
        NSLog(@"%s setCategoryError=%@", __PRETTY_FUNCTION__, setCategoryError);
    }

シミュレーターとiPhone 5で試しました。

誰でも助けることができますか?

4

1 に答える 1

4

まず、 app_name-info.plist でオーディオ カテゴリを設定する必要があります。 アプリ オーディオ カテゴリ

次に、phonegap API メディア プレーヤー http://docs.phonegap.com/en/2.7.0/cordova_media_media.md.html#media.playを使用します。

function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,
    // success callback
    function() {
        console.log("playAudio():Audio Success");
    },
    // error callback
    function(err) {
        console.log("playAudio():Audio Error: "+err);
});

// Play audio
my_media.play({ playAudioWhenScreenIsLocked : true });

playAudioWhenScreenIsLockedいずれにせよ、デフォルトが true になっていることに注意してください。

また、シミュレーターではオーディオがバックグラウンドで動作しないことに注意してください。そのため、デバイスでテストする必要があります。

これが役に立った場合は、回答済みとしてマークしてください。

于 2013-05-24T04:20:00.797 に答える