用于检测视频的BroadCast Receiver是从摄像头捕获的

时间:2015-02-24 11:27:35

标签: java android background-service

当相机拍摄视频时,是否有办法通过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();
}

}
  • 我想要完成的是在从相机拍摄新视频时从广播接收器上传视频。

  • 等待您的经验。提前致谢

  • 修改:具体而言,我必须为从相机拍摄的视频实现这一目标

2 个答案:

答案 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>