14

MediaPlayer が間違った getCurrentPosition() を返すという一般的なバグであり、代替が必要なため、MediaPlayer の代わりに ExoPlayer を使用しようとしています。

しかし、MediaPlayerと同じファイルへのファイルパスからローカルファイルを開く方法に関する情報がどこにも見つかりません.setDataSource(String filepath)

Google には例がなく、公式のドキュメント サイトでは、両方のコンピューターで FireFox ブラウザーが奇妙にクラッシュします。

4

4 に答える 4

10

github の ExoPlayer デモ アプリは、ローカル ファイルを再生するように変更できます。これを行うには、 https://github.com/google/ExoPlayer/blob/master/demo/src/main/java/com/google/android/exoplayer/demo/Samples.javaファイルを編集して新しいビデオ セットを追加します。

public static final Sample[] LOCAL_VIDEOS = new Sample[] {
   new Sample("Some User friendly name of video 1",
     "/mnt/sdcard/video1.mp4", DemoUtil.TYPE_OTHER),
  new Sample("Some User friendly name of video 2",
    "/mnt/sdcard/video2.mp4", DemoUtil.TYPE_OTHER),
};

これを行うには、 https://github.com/google/ExoPlayer/blob/master/demo/src/main/java/com/google/android/exoplayer/demo/Samples.javaファイルを編集して新しいサンプル セットを追加します。

sampleAdapter.add(new Header("Local Videos"));
sampleAdapter.addAll((Object[]) Samples.LOCAL_VIDEOS);
于 2015-04-21T05:27:36.623 に答える
5

Srikanth Peddibhotla のコードを少し変更すると動作します

ファイルの Uri 文字列は、Samples.java の「/mnt/sdcard/YourFilename.mp4」ではなく、「file:///mnt/sdcard/YourFilename.mp4」にする必要があります

public static final Sample[] LOCAL_VIDEOS = new Sample[] {
new Sample("Some User friendly name of video 1",
 "file:///mnt/sdcard/video1.mp4", DemoUtil.TYPE_MP4),
new Sample("Some User friendly name of video 2",
"file:///mnt/sdcard/video2.mp4", DemoUtil.TYPE_MP4),
}; 

また、SampleChooserActivity.javaに次の行を追加します。

 sampleAdapter.add(new Header("Local Videos"));
 sampleAdapter.addAll((Object[]) Samples.LOCAL_VIDEOS);
于 2015-05-13T12:00:32.550 に答える
1

ExoPlayer 2.1 を使用し、demoプロジェクトから開始すると、フォルダーに mp3 ファイルを追加してファイルを作成または変更するassetsだけで、Java コードを変更することなく、フォルダーから mp3 ファイルを再生できます。ExoPlayerプロジェクトから始めます。assetsjsondemo

  1. mp3 ファイルをdemo/assetsフォルダー ( 付きmedia.exolist.json) に入れます。

  2. 次のようにフォーマットされた 1 つ以上のエントリを含むmedia.exolist.jsonような新しいファイルを変更または作成します。my.exolist.json

{ "name": "Children's Songs", "samples": [ { "name": "Mary Had a Little Lamb", "uri": "asset:///mary1.mp3" }, { "name": "Itsy Bitsy Spider", "uri": "asset:///spider1.mp3" } ] },

(最後のコンマは、 mp3 エントリが続く などの別のカテゴリが続くことを前提としています。最後のカテゴリの後にはコンマはありませんBlues Songs。)Jazz Songs

以下の図は、 をクリックした後のチューザー アクティビティ画面を示していますChildren's Songs

ExoPlayer セレクター アクティビティ

Mary Had a Little LambまたはをクリックするItsy Bitsy Spiderと、その mp3 が再生されます。

于 2016-12-24T06:41:09.320 に答える