/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.videoeditor.service;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import android.app.Service;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.media.videoeditor.AudioTrack;
import android.media.videoeditor.Effect;
import android.media.videoeditor.EffectColor;
import android.media.videoeditor.EffectKenBurns;
import android.media.videoeditor.ExtractAudioWaveformProgressListener;
import android.media.videoeditor.MediaImageItem;
import android.media.videoeditor.MediaItem;
import android.media.videoeditor.MediaProperties;
import android.media.videoeditor.MediaVideoItem;
import android.media.videoeditor.Overlay;
import android.media.videoeditor.OverlayFrame;
import android.media.videoeditor.Transition;
import android.media.videoeditor.TransitionAlpha;
import android.media.videoeditor.TransitionCrossfade;
import android.media.videoeditor.TransitionFadeBlack;
import android.media.videoeditor.TransitionSliding;
import android.media.videoeditor.VideoEditor;
import android.media.videoeditor.VideoEditorFactory;
import android.media.videoeditor.WaveformData;
import android.media.videoeditor.MediaItem.GetThumbnailListCallback;
import android.media.videoeditor.VideoEditor.ExportProgressListener;
import android.media.videoeditor.VideoEditor.MediaProcessingProgressListener;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.provider.MediaStore;
import android.provider.MediaStore.Audio;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Video;
import android.util.Log;
import com.android.videoeditor.R;
import com.android.videoeditor.util.FileUtils;
import com.android.videoeditor.util.ImageUtils;
import com.android.videoeditor.util.MediaItemUtils;
import com.android.videoeditor.util.StringUtils;
/**
* VideoEditor service API
*/
public class ApiService extends Service {
// Logging
private static final String TAG = "VEApiService";
// Additional updates
public static final int ACTION_UPDATE_FRAME = MediaProcessingProgressListener.ACTION_DECODE + 100;
public static final int ACTION_NO_FRAME_UPDATE = MediaProcessingProgressListener.ACTION_DECODE + 101;
// Parameters
private static final String PARAM_OP = "op";
private static final String PARAM_REQUEST_ID = "rid";
private static final String PARAM_PROJECT_PATH = "project";
private static final String PARAM_FILENAME = "filename";
private static final String PARAM_STORYBOARD_ITEM_ID = "item_id";
private static final String PARAM_RELATIVE_STORYBOARD_ITEM_ID = "r_item_id";
private static final String PARAM_PROGRESS_VALUE = "prog_value";
private static final String PARAM_EXCEPTION = "ex";
private static final String PARAM_START_TIME = "s_time";
private static final String PARAM_END_TIME = "e_time";
private static final String PARAM_DURATION = "duration";
private static final String PARAM_WIDTH = "width";
private static final String PARAM_HEIGHT = "height";
private static final String PARAM_BITRATE = "bitrate";
private static final String PARAM_MEDIA_ITEM_RENDERING_MODE = "rm";
private static final String PARAM_MEDIA_ITEM_START_RECT = "start_rect";
private static final String PARAM_MEDIA_ITEM_END_RECT = "end_rect";
private static final String PARAM_EFFECT_TYPE = "e_type";
private static final String PARAM_EFFECT_PARAM = "e_param";
private static final String PARAM_TRANSITION_BEHAVIOR = "behavior";
private static final String PARAM_TRANSITION_MASK = "t_mask";
private static final String PARAM_TRANSITION_BLENDING = "t_blending";
private static final String PARAM_TRANSITION_INVERT = "t_invert";
private static final String PARAM_TRANSITION_DIRECTION = "t_dir";
private static final String PARAM_INTENT = "req_intent";
private static final String PARAM_PROJECT_NAME = "name";
private static final String PARAM_MOVIES_FILENAMES = "movies";
private static final String PARAM_PHOTOS_FILENAMES = "images";
private static final String PARAM_ASPECT_RATIO = "aspect_ratio";
private static final String PARAM_BEGIN_BOUNDARY = "b_boundary";
private static final String PARAM_END_BOUNDARY = "e_boundary";
private static final String PARAM_ATTRIBUTES = "attributes";
private static final String PARAM_VOLUME = "volume";
private static final String PARAM_LOOP = "loop";
private static final String PARAM_MUTE = "mute";
private static final String PARAM_DUCK = "duck";
private static final String PARAM_MOVIE_URI = "uri";
private static final String PARAM_THEME = "theme";
private static final String PARAM_ACTION = "action";
private static final String PARAM_COUNT = "count";
private static final String PARAM_TOKEN = "token";
private static final String PARAM_INDICES = "indices";
private static final String PARAM_CANCELLED = "cancelled";
// Operations
private static final int OP_VIDEO_EDITOR_CREATE = 1;
private static final int OP_VIDEO_EDITOR_LOAD = 2;
private static final int OP_VIDEO_EDITOR_SAVE = 3;
private static final int OP_VIDEO_EDITOR_EXPORT = 4;
private static final int OP_VIDEO_EDITOR_CANCEL_EXPORT = 5;
private static final int OP_VIDEO_EDITOR_EXPORT_STATUS = 6;
private static final int OP_VIDEO_EDITOR_RELEASE = 8;
private static final int OP_VIDEO_EDITOR_DELETE = 9;
private static final int OP_VIDEO_EDITOR_SET_ASPECT_RATIO = 10;
private static final int OP_VIDEO_EDITOR_APPLY_THEME = 11;
private static final int OP_VIDEO_EDITOR_GENERATE_PREVIEW_PROGRESS = 12;
private static final int OP_VIDEO_EDITOR_LOAD_PROJECTS = 13;
private static final int OP_MEDIA_ITEM_ADD_VIDEO_URI = 100;
private static final int OP_MEDIA_ITEM_ADD_IMAGE_URI = 101;
private static final int OP_MEDIA_ITEM_MOVE = 102;
private static final int OP_MEDIA_ITEM_REMOVE = 103;
private static final int OP_MEDIA_ITEM_SET_RENDERING_MODE = 104;
private static final int OP_MEDIA_ITEM_SET_DURATION = 105;
private static final int OP_MEDIA_ITEM_SET_BOUNDARIES = 106;
private static final int OP_MEDIA_ITEM_SET_VOLUME = 107;
private static final int OP_MEDIA_ITEM_SET_MUTE = 108;
private static final int OP_MEDIA_ITEM_EXTRACT_AUDIO_WAVEFORM = 109;
private static final int OP_MEDIA_ITEM_EXTRACT_AUDIO_WAVEFORM_STATUS = 110;
private static final int OP_MEDIA_ITEM_GET_THUMBNAILS = 112;
private static final int OP_MEDIA_ITEM_LOAD = 113;
private static final int OP_MEDIA_ITEM_LOAD_STATUS = 114;
private static final int OP_EFFECT_ADD_COLOR = 200;
private static final int OP_EFFECT_ADD_IMAGE_KEN_BURNS = 201;
private static final int OP_EFFECT_REMOVE = 202;
private static final int OP_TRANSITION_INSERT_ALPHA =

yxkfw
- 粉丝: 82
- 资源: 2万+
最新资源
- 基于七自由度冗余机械臂的运动力学建模与优化Matlab代码包,基于七自由度冗余机械臂的SRS构型运动学建模与优化Matlab代码,SRS构型七自由度冗余机械臂运动学建模全套matlab代码 代码主要功
- Win10运行库-VC++2005-2022
- DeepSeek经验分享
- 基于MATLAB平台的微网多目标优化调度模型研究:粒子群算法的改进应用与实践分析,MATLAB程序中改进粒子群算法的微网多目标优化调度研究,基于MATLAB程序,改进粒子群算法的微网多目标优化调度 关
- AutoCAD ObjectArx2018
- Delphi 12 控件之DxAutoInstaller-2.3.5.7z
- COMSOL模拟非饱和裂隙土降雨入渗过程:透水层、探针与空气单元的数值解析及视频文献详解,COMSOL数值模拟:非饱和裂隙土降雨入渗的'空气单元'及透水层探针方法解析,COMSOL非饱和裂隙土降雨入渗
- Delphi 12.3 控件之ArtSQL-Win&Linux-0.1.30.rar
- 使用C#编程设计的计算器程序,可用于学习
- BOX-IN工控盒规格书
- 2021年最新改进天鹰优化算法:引入细菌增长模型等多策略提升性能,基于改进天鹰优化算法(IAO)的细菌增长模型与多策略融合优化器,改进天鹰优化算法(IAO),天鹰优化器,2021年较新优化算法,性能非
- kernel-5.10.0-46.uelc20.x86-64.rpm
- 圣沃数控SUNWO-X1i USB智能转换服务器安装指南与使用手册说明书
- (源码)基于STM32F1xx微控制器的智能交通灯控制系统.zip
- kernel-core-5.10.0-46.uelc20.x86-64.rpm
- Delph 12.3 控件之EurekaLog v7.13.1.0 Update 1 for Support Delphi 12 Athens + Patcher.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


