0

HTML5オーディオタグ(ストリーミング用)とMediaオブジェクト(ローカルに保存されたmp3を再生するため)の両方を使用するPhonegapアプリ(現在iPhoneのみ)があります。どちらもitunesストアへのWebリンクを提供します。

以前は(少なくともMediaオブジェクトでは)、別のアプリが起動されたり、iTunesリンクがロードされたりしたためにアプリがバックグラウンドになった場合でも、オーディオが再生され続ける場合がありました。これは、プロジェクト構成のUI​​BackgroundModesに「audio」を追加するだけで実現されました。(info.plist)

これはiOS6の登場で変わったことを理解しています:UIWebView:アプリがバックグラウンドに入るとiOS6でHTML5オーディオが一時停止します

これにより、HTML5オーディオの問題が修正されました(つまり、Webリンクを使用してiTunesを起動してもストリーミングオーディオが再生され続けます)が、Mediaオブジェクトの場合はiTunesリンクをたどるとオーディオが途切れます)。不思議なことに、http://の代わりにitms-apps://を使用するとオーディオが途切れませんが、iTunesではなくapp-storeが起動します。言い換えれば、iTunesはオーディオをカットアウトさせる唯一のアプリですが、メディアオブジェクトから再生された場合に限ります。

iTunesを起動すると、Mediaオブジェクトによって生成されたオーディオがカットされるのに、他のアプリではカットされない理由を誰かが知っていますか?

4

1 に答える 1

0

この問題は、Cordova WebView 経由で iTunes を起動した場合、つまり次のいずれかを使用した場合にのみ発生するようです。

url = 'https://itunes.apple.com/gb/album/elliphant-ep/id590384846'

1. window.location.href = url
2. window.open(url);
3. window.open(url , '_self');

解決策は、別のアプリを使用して iTunes を起動することです。

window.open(url , '_system');

システム ブラウザで URL を開くと、システムは iTunes リンクをインターセプトし、iTunes はシステム ブラウザを介して起動されます。

w = window.open(url, '_blank');

URL が InAppBrowser で強制的に起動され、システムが iTunes リンクをインターセプトし、iTunes が InAppBrowser 経由で起動されます。InAppBrowser は自動的に閉じず、ユーザーがアプリに戻ったときに InAppBrowser がまだ表示されているため、これは見苦しいソリューションです。それを閉じるには、 w.close() を呼び出す必要があります

于 2013-03-19T23:26:42.067 に答える