34 votes

SurfaceHolder.setType est obsolète... Mais est-il requis ?

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

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

Cette méthode est obsolète. cette valeur est ignorée, cette valeur est définie automatiquement lorsque nécessaire.

Définit le type de la surface.

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

Il dit que c'est défini automatiquement mais, sans cela, ma vidéo ne se lit pas. Que se passe-t-il ici? Y a-t-il quelque chose qui le remplace? J'ai du mal à faire en sorte que la vidéo se lise correctement sur Android.

56voto

lyricsboy Points 1776

Le trick est de savoir quand il a été obsolète, 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'êtes probablement pas en train d'exécuter 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 plateformes.

ÉDIT: il a été obsolète dans Android 3.0, ce que les docs reflètent maintenant.
Nous pouvons l'utiliser comme suit:

if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
    getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X