2016-07-18 9 views
1

私はストレージからファイルを選択してそのタイプのデフォルトプレーヤーで起動しようとしているアプリケーションを作成しています。今、メディアプレーヤーが起動するとすぐに再生が開始されます。私はファイルをロードし、ユーザーの入力を待っています。メディアプレーヤーに再生を開始しないように伝えるために追加することができる余分なものはありますか?Android、再生を開始せずにプレーヤーにメディアファイルを起動

// I have directory, filename, and mimeType defined in earlier code 
File file = new File(directory, filename); 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(file), mimeType); 
if (intent.resolveActivity(getPackageManager() != null) { 
    startActivity(intent); 
} 
+0

いくつかのコードは本当に助けになるでしょう – Akis

答えて

1

TL; DR:号


the ACTION_VIEWIntent actionには文書のエキストラがありません。何千ものデバイスモデル、さらに何千ものメディアプレーヤーがダウンロード可能です。ドキュメント化されていない、サポートされていない追加のプレーヤーが見つかったとしても、他のプレーヤーはサポートしていません。

"ここにはメディアファイルがありますが、再生は開始しません"という意味の標準Intentアクションは認識されていません。

Intentのサードパーティアプリケーションを呼び出すのは、サイトのWebサイトにリンクするのと少し似ています。ユーザーがそのリンクをクリックしたことに応答してそのサイトが行うのは、あなたのサイトではなく、そのサイトです。 Intentのアプローチは、サイトへのリンクでは特定のサイトにリンクしており、そのサイトが利用可能であることがわかっているという点で、多くの点で悪化しています。 Androidの場合、Intentはいくつでも可能なアプリを表示する可能性があります。

+0

あなたの答えと有益なアナロジーの両方に感謝します! – Rae

1

誰かが私が間違っているなら、私を修正するが、私は知っているからネイティブプレーヤーでそれを行う方法はありませんので、そのあなたがコントロールの多くを持っていないものに新しいアプリを起動するように。

あなたが探しているような機能のためにVideoViewを使用することをお勧めします。

VideoView myVideoView = (VideoView) findViewById(R.id.videoView); 

そして、あなたのプレイボタンのクリックイベント内:動画がスタートします時に、あなたが扱うことができるこの方法では、これは本当に基本的なコード例でmyVideoView.start()

+0

私は謝罪し、私はコードを含めるために私の質問を編集します。私はVideoViewを使用していませんが、デバイス上でデフォルトのビデオプレーヤーを起動しています。 – Rae

+0

@Raeはコードメイトを追加してくれてありがとう私は自分の答えを編集しました。私はそれがあなたの答えのために – Akis

+1

おかげで助けてくれることを願っています。私はこれについて他の誰かと仕事をしており、すぐに再生を開始しないように外部アプリに指示することは不可能だと言う前に確実にしたいと思っていました。 – Rae

関連する問題