1

データベースに保存せずに、コンテンツ プロバイダーからビデオに直接アクセスしています。しかし、他のビデオや 3gp ビデオと一緒に 3gp オーディオ ファイルを提供しています。動画ファイルのみをフィルタリングするにはどうすればよいですか。私は API 8 で作業しています。

4

1 に答える 1

1

API 8 で作業しているので、これを試してください。そうしないと、API レベル >= 10 の場合、METADATA_KEY_HAS_VIDEO
が機能していた可能性があります。MediaPlayer を使用した回避策。メディアに高さがある場合、それはビデオであることを意味します。

public boolean isVideoFile(File file) { 
        int height = 0;
        try {
            MediaPlayer mp = new MediaPlayer();
            FileInputStream fs;
            FileDescriptor fd;
            fs = new FileInputStream(file);
            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;
    }

ソース

于 2013-05-02T08:00:52.577 に答える