2016-05-12 18 views
3

他のアプリの現在再生中のオーディオにアクセスするにはどうすればよいですか?私は、この質問には多くの質問がありましたが、何年にもわたってソリューションがほとんど提供されていないことがわかります。私はAppleがの哲学、おそらくのためにこれをすることを望んでいないと理解しています。また、そのようなリクエストは、iOS APIの外部で、おそらくであることを理解しています。それが言われて、私は本当に何らかの解決策を望んでいます。他のアプリの現在再生中のオーディオを取得する方法

論理的には、私は

MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo 

が現在再生されているもののための情報を返す必要があることを感じて。ただし、他の人が触れたように、この値はアプリの外で再生されるオーディオの場合は常にnilです。注目すべきは、一般的なオーディオアプリケーションは、MPNowPlayingInfoCenterクラスの使用に失敗しているように見えます。そのようなオーディオは表示されません。

デフォルトの音楽アプリを使用している場合、1はしかし、など、Spotifyは、パンドラ、Safariのポッドキャストアプリを通じてオーディオ再生にアクセスするために、より一貫性のある方法何

MPMusicPlayerController.systemMusicPlayer().nowPlayingItem 

を使用することができますか?

誰にでも解決策が見つかりましたか?この機能をサポートする古いObjective-Cフレームワークはありますか?

現在再生されている項目の音声パスに何らかの方法でアクセスできる方法がある場合、1つのアプローチが有効である可能性があります。例えば、私は現在再生中のアイテムのパスを取得することができれば、私はそれからAVオブジェクトを作成することができます。

AVAudioPlayer(contentsOfURL: audioUrl) 

だから私は、現在再生中のアイテムのオーディオURLを取得し、それを使用することができます方法はありそう?

もう1つのアプローチは良いですか?存在しないネイティブソリューションは、一緒にそれのために働くことが可能なもの bodge にある場合

?アドバイスやアイデアを歓迎します。

編集:私は誰もこれを達成することはできませんでした。しかし、私は多くの人々がしたいと思います。これが解決された場合は、リンクしてください! :)

+0

、そのようなテレビCMなどのカスタムファイル用のACRソリューションを提供しています他のプレイヤーが 'MPNowPlayingInfoCenter'に与えた場合に限ります。 – Larme

+0

Apple MusicとPodcastsの両方のアプリ@Larmeでテストしました。私はそれを間違って実装していますか? – modesitt

+4

これはただ不可能であるという問題があります。他のアプリケーションが何をしているのかについての情報は得られません。あなたがYouTubeやSafariで見ているものを追跡するアプリを想像してみてください。それは*巨大な*セキュリティ上の脅威でしょう。 – Sulthan

答えて

0

これは現在iOSでは不可能です。にカテゴリオプションをAVAudioSessionに変更するだけです。 MixWithOthers、他のアプリから情報のソング情報を取得するオプションは、あなたのnowPlayingInfoが無視される原因になります。

iOSは、複数のミキシングアプリが同時に再生されている場合、どのアプリがコントロールセンターに表示されるか不明確であるため、MPNowPlayingInfoCenterに含まれる非ミキシングアプリのみを考慮します。

提案:オプションは、あなたのアプリからそれを記録して再生されているものを認識する音楽フィンガープリントアルゴリズムを使用することです。

この方向でいくつかの興味深いプロジェクト:(ソニーが所有しています)

Gracenoteのhttps://developer.gracenote.com/ Gracenoteは、それのSDKおよびAPIを開いて、適切なのdevのポータルを持っていました。 2016年3月以来の

楽しんでると

EchoNest & SpotifyはAPIのhttp://developer.echonest.com/ Fusioned

ACRCloudhttps://www.acrcloud.com/は、あなたが投稿したコードは、その情報を返すことが音楽テック

関連する問題