2009-12-07 22 views
9

Yani burada anlatılan yöntemi kullanarak Android Uygulaması ile medyanın belirli bir bölümüne almaya izin vermek için çalışıyorum: O hariç, inşaat büyük Access pictures from Pictures app in my android appErişme Videolar VE Fotoğraflar +

Görünüşe göre, hem Video hem de Fotoğraf arasında, kullanıcıyı aynı anda değil, aynı anda sunmak için tercih edebilirim. Bu yapmak için iyi bir yolu var mı:

startActivityForResult (yeni Niyet (Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), SELECT_IMAGE);

Teşekkürler!

+0

yaralanma hakaret eklemek için deneyin - Ben Video ile yöntemini kullandığınızda - bunu seçtiğinizde sadece bunu oynar - aslında kullanıcının medyayı almaya izin vermez - ve küçük resimler göstermez. Galeri’yi yeniden yazacak mıyım? Galeri'yi çağırabileceğim bir yol var mı ve ardından seçilmiş bir medya parçası için Uri'ye geri döndü mü ??? – FunnyLookinHat

cevap

17

Bunu birkaç kez kullandım. Bu tam olarak doğru olmasa bile

Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT); 
//comma-separated MIME types 
mediaChooser.setType("video/*, images/*"); 
startActivityForResult(mediaChooser, 1); 

, ben de kullandım her şeyi ince çalıştı O küçük resim listesini içeren bir Galeri-vari aktiviteyi açılacaktır: en iyi yolu şey gibidir. Kullanıcının galerisindeki her fotoğraf/video. onActivityResult()'a iade edilen niyetin, "DATA" adlı bir eki vardır; bu, seçilen medyaya bir içerik: // URI olacaktır.

DÜZENLEME: oops, aslında onActivityResult()

+2

Robert - Nedense aşağıdaki satırı kullandığımda boş bir seçicim var: mediaChooser.setType ("video/*, images/*"); Ayrıca bunu şanssız denedim ... mediaChooser.setType ("video/*, image/*"); Bununla birlikte, her biri tek tek iyi çalışır ... yani mediaChooser.setType ("video/*"); mediaChooser.setType ("image/*"); Çalıştığı tam bir kod parçacığı yapıştırabilir misiniz? **** DÜZENLEME - Bu işe yaramaz gibi görünüyor artık çalışmıyor sürüm 2.0 – FunnyLookinHat

+3

Merhaba! Android 1.6 kullanıyorum ve çalışmıyor! Sadece resim veya sadece videolar iyi. Herhangi bir fikir? – Karoly

+1

2.3 –

1

Kivy geçirilen alır Niyet üzerinde getData() aramak istediğiniz seçilen medyaya URI olsun - en kolay yolu bir niyet yaratmaktır medyanın bir parça seçmek ve videoya kısıtlamak için:

Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT); 
pickMedia.setType("video/*"); 
startActivityForResult(pickMedia,12345); 

Not - 12345 Uygulamanız gereken yere aldığınız her ne bilgi gönderebilmesi için bir istek geri arama dinlemek gerekiyor tamsayıdır.

Daha sonra da aynı etkinlik geri o amacından gönderilecek bilgi için dinleme olduğunu olmalı

:

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == 12345) { 
      if (resultCode == Activity.RESULT_OK) { 
       Uri selectedVideoLocation = data.getData(); 

       // Do something with the data... 
      } 

     } 
    } 

Serin?

+1

Soru, videolara ve fotoğraflara erişmekle ilgiliydi. Sadece video değil. Verdiğin cevap sadece videoyla ilgiliydi. –

+0

Maalesef bunu Android 2.0 + 'da yapamazsınız - mediaChooser.setType ("video/*, images/*") adlı sahte yöntem; çalışmaz ve medya için tarama yapan ve bunu bir seçici ekrana döndüren kendi seçici etkinliğinizi oluşturmadığınız sürece, elde edeceğiniz en iyi şey kullanıcıya bir Video Görüntüsü arasında seçim yapmaktır. – FunnyLookinHat

+0

4.2.x'te ne yaptıklarını bilmiyoruz, ancak birden fazla mim türü seçmeniz işe yarayacak gibi görünüyor :) –

1
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
startActivityForResult(intent, 1); 
1

bu

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("*/*"); 
startActivityForResult(intent, 101);