web-dev-qa-db-fra.com

SurfaceHolder.setType est obsolète ... Mais obligatoire?

void Android.view.SurfaceHolder.setType (type int)

public abstract void setType (int type) Depuis: API Level 1

Cette méthode est obsolète. ceci est ignoré, cette valeur est définie automatiquement en cas de besoin.

Définit le type de surface.

http://developer.Android.com/reference/Android/view/SurfaceHolder.html

Il dit qu'il est réglé automatiquement mais sans cela, ma vidéo ne sera pas lue. Que se passe t-il ici? Y a-t-il quelque chose qui le remplace? J'ai du mal à lire la vidéo correctement sur Android.

34
bwoogie

L'astuce consiste à savoir quand il a été déprécié, ce qui est assez difficile à déterminer d'après mon expérience. La documentation est toujours à jour pour la dernière API disponible, mais vous n'exécutez probablement pas cette application sur la dernière API, si je devais deviner. Vous devez donc toujours utiliser cette méthode (généralement avec Push_BUFFERS) pour la faire fonctionner sur les anciennes plates-formes.

EDIT: il a été déconseillé dans Android 3.0, que les documents reflètent maintenant.
Nous pouvons donc l'utiliser comme suit:

if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
    getHolder().setType(SurfaceHolder.SURFACE_TYPE_Push_BUFFERS);
56
lyricsboy