Android 手机的h264 硬编码测试
2016/06/23 0 网上源码进行点小改动, 代码如下:
/** * oppo r7s(android 4.4.4)测试通过,红米3(android 5.1.1)测试未通过*
@author Administrator */@SuppressLint( NewApi )public class MainActivity extends Activity implements SurfaceHolder.Callback, PreviewCallback {DatagramSocket socket;InetAddress address;AvcEncoder avcCodec; public Camera m_camera; SurfaceView m_prevewview; SurfaceHolder m_surfaceHolder; int width = 1280; int height = 720; int framerate = 20; int bitrate = 2500000; byte[] h264 = new byte[width*height*3/2];@Overrideprotected void onCreate(Bundle savedInstanceState) {StrictMode.setThreadPolicy(new
StrictMode.ThreadPolicy.Builder() .detectDiskReads() .detectDiskWrites() .detectAll() . penaltyLog() .build());StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects() .detectLeakedClosableObje cts() .penaltyLog() .penaltyDeath() .build());super.onCreate(savedInstanceState);setConte n
tView(http://doc.xuehai.netyout.activity_main);avcCodec = new AvcEncoder(width,height,framerate,bitrate);m_prevewview = (SurfaceView) findViewById(R.id.SurfaceViewPlay);m_surfaceHolder = m_prevewview.getHolder();
m_surfaceHolder.setFixedSize(width,
height);m_surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
m_surfaceHolder.addCallback((Callback) this);try {socket = new DatagramSocket();address = InetAddress.getByName( 192.168.1.101 } catch (SocketException e) {e.printStackTrace();} catch (UnknownHostException e) {e.printStackTrace();}}@Overridepublic void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {}@Overridepublic void surfaceCreated(SurfaceHolder arg0) {try {m_camera = Camera.open();m_camera.setPreviewDisplay(m_surfaceHolder);Camera.Parameters