2011-10-27 2 views
3

私は、ユーザーがメディア(ビデオ、写真、オーディオ)をインポートし、アプリケーションによって管理される(証拠として)アプリケーションを持っています。 私は、一部のオーディオ録音アプリケーションが.3gp形式のオーディオ(特にWhats Appメッセンジャー)を保存することがわかりました。私は次のコードを使用してMIMEタイプを取得する場合:.3gpファイルがアンドロイドのオーディオまたはビデオであるかどうかを確認する方法

MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileExtension); 

をそれは私のアプリは、I「ビデオ」それはタイプであることを意味するのにかかると、サムネイルを作成しようとするものではない(ビデオ/ 3GPとして戻ってきますmimeタイプの最初の部分を使用して、私のアプリがどのタイプのものとして分類するかを判断してください)。 しかし、それはオーディオですので、私が動作することが期待される特定のことはできません(ビデオのサムネイルの作成など)。ファイルがビデオオーディオのみであるかどうかを私に教えることができるライブラリやライブラリがありますか?私はサムネイルを作成しようとすることができ、そのファイルがオーディオであると仮定して失敗した場合、サムネイルを作成する際に他のいくつかの問題が発生する可能性があることを考えると、何か案は?

答えて

2

私はこれを行う方法を考え出した:それを行うには...おそらくない最も効率的な方法のメディアファイルは、あなたがこれを使用することができ、ビデオを持っているのであれば把握する

public static boolean is3gpFileVideo(File mediaFile) { 
     int height = 0; 
     try { 
      MediaPlayer mp = new MediaPlayer(); 
      FileInputStream fs; 
      FileDescriptor fd; 
      fs = new FileInputStream(mediaFile); 
      fd = fs.getFD(); 
      mp.setDataSource(fd); 
      mp.prepare(); 
      height = mp.getVideoHeight(); 
      mp.release(); 
     } catch (Exception e) { 
      Log.e(TAG, "Exception trying to determine if 3gp file is video.", e); 
     } 
     return height > 0; 
    } 

何かのためにあなたのアプリケーションではまれにしか実行されませんが、それは妥当な解決策のようです。

+0

mp.prepareで動作します)が必要です。実際には必要です(ただし、ドキュメントは異なっています)。私のテストでは、mediaplayerオブジェクトの準備を呼び出さなかった場合、オーディオかビデオかにかかわらず、高さは常に0でした。 –

3

METADATA_KEY_HAS_VIDEO

このキーは、メディアがビデオコンテンツを含んで存在している場合。

+0

は、私が(API 8)2.2以降のAndroidで動作する何か –

+0

このソリューションは唯一のAPI(10+ –

1

私はこのソリューションをテストしていませんが、ビデオのサムネイルを取得しようとする可能性があります。

Bitmap thumbnail = ThumbnailUtils.createVideoThumbnail(videoPath, 
      MediaStore.Images.Thumbnails.MINI_KIND); 

thumbnailnullであれば、それはそれ以外の場合はビデオだ、オーディオです。

0

私はAlessandro Roaroのソリューションをテストしてくれています。私は現在、私のアプリでそれを使用しています。

私は引用:

私はこのソリューションをテストしていませんが、あなたは、ビデオのサムネイル を取得しようとすることができます。サムネイルがnullの場合はオーディオ、そうでない場合はビデオです。

Bitmap thumbnail = ThumbnailUtils.createVideoThumbnail(videoPath, 
MediaStore.Images.Thumbnails.MINI_KIND); 
関連する問題