faqs.md 2.2 KB
Newer Older
O
ojw28 已提交
1 2 3 4 5 6
---
layout: default
title: FAQs
weight: 3
---

O
ojw28 已提交
7 8 9
* [What formats does ExoPlayer support?][]
* [How do I get smooth animation/scrolling of video?][]
* [Should I render video to a SurfaceView or TextureView?][]
O
ojw28 已提交
10

O
ojw28 已提交
11 12
---

O
ojw28 已提交
13 14
#### What formats does ExoPlayer support? ####

O
ojw28 已提交
15
See the [Supported formats][] page.
O
ojw28 已提交
16 17 18

#### How do I get smooth animation/scrolling of video? ####

O
ojw28 已提交
19 20 21 22 23
`SurfaceView` rendering wasn't properly synchronized with view animations until Android N. On
earlier releases this could result in unwanted effects when a SurfaceView was placed into scrolling
container, or when it was subjected to animation. Such effects included the `SurfaceView`'s contents
appearing to lag slightly behind where it should be displayed, and the view turning black when
subjected to animation.
O
ojw28 已提交
24

O
ojw28 已提交
25 26 27
To achieve smooth animation or scrolling of video prior to Android N, it's therefore necessary to
use `TextureView` rather than `SurfaceView`. If smooth animation or scrolling is not required then
`SurfaceView` should be preferred (see [Should I use SurfaceView or TextureView?][]).
O
ojw28 已提交
28 29 30 31 32 33 34 35 36

#### Should I use SurfaceView or TextureView? ####

`SurfaceView` has a number of benefits over `TextureView` for video playback:

* Significantly lower power consumption on many devices.
* More accurate frame timing, resulting in smoother video playback.
* Support for secure output when playing DRM protected content.

O
ojw28 已提交
37 38 39 40 41 42 43 44 45 46 47
`SurfaceView` should therefore be prefered over `TextureView` where possible. `TextureView` should
be used only if SurfaceView does not meet your needs. One example is where smooth animations or
scrolling of the video surface is required prior to Android N (see
[How do I get smooth animation/scrolling of video?][]).For this case, it's preferable to use
`TextureView` only when [`SDK_INT`][] is less than 24 (Android N), and `SurfaceView` otherwise.

[What formats does ExoPlayer support?]: #what-formats-does-exoplayer-support?
[How do I get smooth animation/scrolling of video?]: #how-do-i-get-smooth-animation/scrolling-of-video?
[Should I render video to a SurfaceView or TextureView?]: #should-i-use-surfaceview-or-textureview?
[Supported formats]: https://google.github.io/ExoPlayer/supported-formats.html
[`SDK_INT`]: https://developer.android.com/reference/android/os/Build.VERSION.html#SDK_INT