2015-02-21 25 views
10

MediaPlayer yerine ExPlayer kullanıyorum çünkü MediaPlayer yanlış getCurrentPosition() döndürüyor ve bir yedeğe ihtiyacım var.ExoPlayer - yerel mp3 dosyası nasıl çalınır

Ama aynı dosyaya dosya yolu aracılığıyla yerel bir dosyayı açmak için nasıl her yerde bir bilgi bulamıyorum MediaPlayer en .setDataSource(String filepath)

Google'ın herhangi bir örnek ve benim FireFox çökmesine garip resmi belgeler sitesi yok

tarayıcı her iki bilgisayarda da

+0

Bu hangi hata? Referansın var mı? – Marcus

+1

https://www.google.com/#newwindow=1&q=android+media+player+getcurrentposition+bug –

cevap

9

Github'daki ExoPlayer demo uygulaması yerel dosyaları yürütmek için değiştirilebilir. Bunu yapmak için, yeni bir video seti eklemek için https://github.com/google/ExoPlayer/blob/master/demo/src/main/java/com/google/android/exoplayer/demo/Samples.java dosyasını düzenleyin.

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), 
}; 

, bunu yeni bir numune kümesi eklemek üzere https://github.com/google/ExoPlayer/blob/master/demo/src/main/java/com/google/android/exoplayer/demo/Samples.java dosyasını düzenleyin. yerine "/ mnt/sdcard/DosyaAdınız arasında: "///mnt/sdcard/YourFilename.mp4 dosyası"

sampleAdapter.add(new Header("Local Videos")); 
sampleAdapter.addAll((Object[]) Samples.LOCAL_VIDEOS); 
+0

İyi yanıt, teşekkürler! Neyse ben Environment.getExternalStorageDirectory() 'kullanımı daha anroid benzeri bir yol olduğunu düşünüyorum. – thomasb

+0

@Srikanth, bağlantıyı tekrar paylaşabiliriz – Erum

5

Srikanth Peddibhotla en kodu ile küçük bir modifikasyonu dosyası için Uri dize olmalıdır

işleri Ayrıca Samples.java

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), 
}; 

.mp4" , aşağıdaki satırları ekleyin SampleChooserActivity.java

sampleAdapter.add(new Header("Local Videos")); 
sampleAdapter.addAll((Object[]) Samples.LOCAL_VIDEOS); 
0

Google, bugünlerde bazı değişken adı ve sınıf tanımını değiştirdi! Aşağıda benim için farklı işler.

--- a/demo/src/main/java/com/google/android/exoplayer/demo/SampleChooserActivity.java 
+++ b/demo/src/main/java/com/google/android/exoplayer/demo/SampleChooserActivity.java 
@@ -30,6 +28,8 @@ import android.widget.ExpandableListView; 
import android.widget.ExpandableListView.OnChildClickListener; 
import android.widget.TextView; 

import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 
@@ -44,7 +44,12 @@ public class SampleChooserActivity extends Activity { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.sample_chooser_activity); 
    final List<SampleGroup> sampleGroups = new ArrayList<>(); 
- SampleGroup group = new SampleGroup("YouTube DASH"); 
+ 
+ SampleGroup group = new SampleGroup("test videos"); 
+ group.addAll(Samples.LOCAL_VIDEOS); 
+ sampleGroups.add(group); 
+ 
+ group = new SampleGroup("YouTube DASH"); 
    group.addAll(Samples.YOUTUBE_DASH_MP4); 
    group.addAll(Samples.YOUTUBE_DASH_WEBM); 
    sampleGroups.add(group); 
diff --git a/demo/src/main/java/com/google/android/exoplayer/demo/Samples.java b/demo/src/main/java/com/google/android/exoplayer/demo/Samples.java 
index 9f58528..9e86f99 100644 
--- a/demo/src/main/java/com/google/android/exoplayer/demo/Samples.java 
+++ b/demo/src/main/java/com/google/android/exoplayer/demo/Samples.java 
@@ -248,6 +248,13 @@ import java.util.Locale; 
     "http://vod.leasewebcdn.com/bbb.flv?ri=1024&rs=150&start=0", Util.TYPE_OTHER), 
    }; 

+ public static final Sample[] LOCAL_VIDEOS = new Sample[] { 
+   new Sample("Some User friendly name of video 1", 
+     "file:///mnt/sdcard/test1.mp4", Util.TYPE_OTHER), 
+   new Sample("Some User friendly name of video 2", 
+     "file:///mnt/sdcard/test2.mp4", Util.TYPE_OTHER), 
+ }; 
+ 
    private Samples() {} 

} 
1

ExoPlayer 2.1 Kullanımı ve demo projesi ile başlayan, sadece assets klasördeki mp3 dosyaları ekleme ve oluşturma veya bir json dosyayı değiştirerek, Java kodunu değiştirmeden assets klasörden mp3 dosyaları çalabilir . ExoPlayer demo projesi ile başlayan:

  1. (media.exolist.json ile) demo/assets klasördeki mp3 dosyaları koyun.

  2. Ya media.exolist.json değiştirmek veya bir veya daha fazla girişi içeren gibi my.exolist.json böyle biçimlendirilmiş yeni bir dosya oluşturmak:

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

(son virgül başka kategori aşağıdaki gibi olacaktır varsayar Daha fazla mp3 girişi ile Blues Songs, Jazz Songs vb. gibi son kategori. Son kategorisinde virgül yok.)

Aşağıdaki şekilde gösterilmektedir Eğer Children's Songs tıkladıktan sonra seçici aktivite ekranı:

ExoPlayer Chooser Activity

tıklayın Mary Had a Little Lamb veya Itsy Bitsy Spider ve bu mp3 çalar.

İlgili konular