我尝试使用以下代码从iphone相机保存视频文件:
class Camera {
...
private func loadDeviceInput() {
let devices = AVCaptureDevice.devices() as! [AVCaptureDevice]
for device in devices {
if device.hasMediaType(AVMediaTypeVideo) {
if device.position == .Back {
_deviceBack = device
_inputBack = try? AVCaptureDeviceInput(device: device)
}
else if device.position == .Front {
_deviceFront = device
_inputFront = try? AVCaptureDeviceInput(device: device)
}
}
else if device.hasMediaType(AVMediaTypeAudio) {
_inputAudio = try? AVCaptureDeviceInput(device: device)
}
}
}
private func loadDeviceOutput() {
_outputStill = AVCaptureStillImageOutput()
_outputStill?.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]
if _session.canAddOutput(_outputStill) {
_session.addOutput(_outputStill) …Run Code Online (Sandbox Code Playgroud) 我尝试在我的应用程序中(希望)定义良好的视图(XML)上显示 ImageView
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activityShowLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#73C310"
android:orientation="vertical"
tools:context=".ShowActivity" >
<ImageView
android:id="@+id/mainImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/moodButton"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_margin="12dp"
android:background="#000"
android:src="@drawable/gs_04_pic" />
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)
然后在我的活动的 onCreate 方法中
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
/* ... blabla bla ... */
ImageView imageView = (ImageView) findViewById(R.id.mainImage);
Bitmap bitmap = BitmapFactory.decodeByteArray(cream.getMedia(), 0, cream.getMedia().length);
Drawable draw = new BitmapDrawable(getResources(), bitmap);
imageView.setImageDrawable(draw);
imageView.invalidate();
}
Run Code Online (Sandbox Code Playgroud)
Cream.getMedia() 返回一个有效的 byte[] (来自数据库),我可以记录给我:
07-18 17:41:16.812: I/app(9883): 字节[] 是: [B@414af0b0
但最后 imageView 是黑色的(上面没有图像)如果我不运行 …