12

以下の両方がエミュレーター (2.3.3) で正常に動作しますが、実際のデバイス ( Nexus S with 4.1.2) ではサムネイルに画像が表示されません。で実行してみAndroid 4 Emulatorます。のデフォルトを設定するandroid:srcImageView、表示されなくなります。これは入れ替わったのかと思いきや、ImageView中身は空っぽ。

public class MainActivity extends Activity {

    ImageView img;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        img = (ImageView)findViewById(R.id.img_thumbnail);
        new MyAsync().execute("http://commonsware.com/misc/test.mp4");
    }

    //This version is still not working, but it's more readable (edited: Selvin).
    public class MyAsync extends AsyncTask<String, Void, Bitmap>{

        @Override
        protected Bitmap doInBackground(String... objectURL) {
            //return ThumbnailUtils.createVideoThumbnail(objectURL[0], Thumbnails.MINI_KIND);
            return ThumbnailUtils.extractThumbnail(ThumbnailUtils.createVideoThumbnail(objectURL[0], Thumbnails.MINI_KIND), 100, 100);
        }

        @Override
        protected void onPostExecute(Bitmap result){
             img.setImageBitmap(result);
        }
    }
}

リモート ビデオ URL から Android デバイスにビデオ サムネイルを表示する という同様の質問が以前に出されたことは知っていますが、既にこれと同じ結果を試しました。

デバイスでこれが機能しないのはなぜですか? また、どのように機能させるのですか?

4

3 に答える 3

2

FFmpegMediaMetadataRetriever を使用して、目的の位置でサムネイルを抽出します: FFmpegMediaMetadataRetriever

于 2014-05-07T16:23:17.623 に答える
0

これは Android と Java では不可能であり、ビデオ全体をダウンロードせずに他の言語を知っている限り (間違っている場合は訂正してください)。YouTube やその他の大規模な動画サービスが、動画の親指を取得するためのシンプルな API を提供するのには十分な理由があります。したがって、ビデオが存在するサーバーがこの種の API 呼び出しをサポートしていない場合は、不運に見舞われます。

于 2013-03-06T08:24:27.760 に答える