当相机拍摄视频时,是否有办法通过broadCast接收器(或任何其他方式)进行检测。
我使用以下代码为相机照片做了同样的事情:
在Manifest中:
<receiver
android:name=".CameraPhotoReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="com.android.camera.NEW_PICTURE" />
<action android:name="android.hardware.action.NEW_PICTURE" />
<data android:mimeType="image/*" />
</intent-filter>
</receiver>
BroadCast接收器类:
public class CameraPhotoReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent arg1)
{
// TODO Auto-generated method stub
Cursor cursor = context.getContentResolver().query(arg1.getData(), null, null, null, null);
cursor.moveToFirst();
String image_path = cursor.getString(cursor.getColumnIndex("_data"));
Toast.makeText(context, "New Photo is Saved as : " + image_path, Toast.LENGTH_SHORT).show();
}
}
我想要完成的是在从相机拍摄新视频时从广播接收器上传视频。
等待您的经验。提前致谢
修改:具体而言,我必须为从相机拍摄的视频实现这一目标
答案 0 :(得分:0)
也许您可以将媒体URI上的ContentObserver用作触发器,然后检查媒体商店中最新视频文件的时间戳?
答案 1 :(得分:0)
你必须在清单中以这种方式声明:
<receiver
android:name=".CameraEventReciver"
android:enabled="true" >
<intent-filter>
<action android:name="android.hardware.action.NEW_PICTURE" />
<action android:name="android.hardware.action.NEW_VIDEO" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
</intent-filter>
</receiver>