2016-09-17 9 views
0

私はストリーミングラジオアプリに取り組んでいます。ストリーミングラジオアプリは、あらかじめ定義された一連のステーションを再生できます。私はこれを既存の目覚まし時計アプリに統合したいと思います。アプリにアラーム機能を組み込む必要はありません。私のアプリケーションを目覚まし時計のハンドラとして登録することはできますか?

アラームがオフになると、ラジオが再生を開始するはずです。理想的には、ユーザーが選択したステーションを再生する必要がありますが、最後に使用したステーションを保存して再生することになります。

Androidで利用できるcommon intentsを調べましたが、適切なものはありません。特に:

  • INTENT_ACTION_MEDIA_PLAY_FROM_SEARCHは、適切ではないと思われる自由形式の検索クエリが必要です。
  • ACTION_VIEWにはURLが必要です。ラジオ局のストリームURLを使用するか、my-radio-app://station-idのようなカスタムURLスキームを考え出すことができますが、一般的な目覚まし時計アプリケーションを使用可能なステーションのリストをユーザーに表示するにはどうすればよいですか?

もう一方の端からアプローチするために、私は既存の目覚まし時計アプリを見ました。ストックアプリは統合を行いません。私が使用するAndroidアプリケーションとしてのSleepはSpotifyをトリガーすることができますが、それはカスタム組み込み統合だと思います。それはまた、SDカードからすべての音楽トラックを読み込んでリストするようです。

私は不可能にしようとしていますか?これらの意図は標準化されていませんか?

答えて

1

これは、アラーム機能をアプリケーション自体に組み込む必要なく、既存のアラームクロックアプリケーションと統合したいと考えています。

多くの目覚まし時計アプリがこれをサポートしていれば、私はむしろ驚くでしょう。

アラームがオフになると、無線機が必要な統合の唯一の作品です

の再生を開始する必要があります。ユーザーがアラームをスヌーズまたは停止すると、ラジオの再生が停止するはずです。

一般的な目覚まし時計アプリにユーザーに使用可能なステーションのリストを表示させるにはどうすればよいですか?

アラームクロックアプリによっては、アラーム「着信音」として再生するオーディオを選択することができます。それらのアプリは、そのオーディオをいくつかの方法のいずれかで得ることができます。あなたがフックできるフックはACTION_GET_CONTENTです。 ACTION_GET_CONTENTの場合は<intent-filter>、適切な場合はaudio MIMEタイプのアクティビティを持つことができます。アクティビティには、オーディオにUriが返されます。しかし、そのUriは、MediaPlayerで再生できるストリームを指し示す必要があります。これは、目覚まし時計アプリケーションがそのオーディオを再生する可能性が最も高い方法です(Notification.BuildersetSound()経由)。これは、あなたがサポートされているものに近づくことに最も近いものです。この場合、あなたはオーディオを再生していませんが、多くの場合、ストリームをMediaPlayerが再生できるものにトランスコードします。

私の推測によると、これはあなたが心に留めていることではありません。

これらのインテントは標準化されていませんか?

この場合、Intentに何ができるとは思っていません。たとえば、アクティビティが頻繁に表示されない(ユーザーの画面がロックされている)ため、ユーザーがアラームをスヌーズまたは停止したときにアラームクロックアプリケーションが音楽を停止できないため、Intentを使用してオーディオを再生するアクティビティを開始することはできません。

1つのアプリが他のアプリにオーディオの再生を開始および停止するよう求める標準的な仕組みはありません。このためのコンベンションを発明し、目覚まし時計の開発者に実装することを納得させることは大歓迎です。

+0

真実なのは、ちょうど始めるよりも少し統合が必要だが、最初は単純にしておくことに決めた。明らかにそれはすでに十分に難しい;)疑問を確認してくれてありがとう。 'ACTION_GET_CONTENT'は実際に特定のストリームを選択するために使うことができますが、もちろん両方のアプリからの協力が必要です。残念。デバイスがロックされていても、意図的に再生を開始することができると思っています。しかし、あなたが言うように、それは標準化されていないようで、これは単なる趣味のプロジェクトなので試してみません。 – Thomas

関連する問題