- Added support for audio and image media types
- target sdk version set to 30
- Video editor removed
- exoplayer version downgraded
- fixed bug related to missing start/stop button
- added fullscreen mode for video player
- Fixed playing HLS/M3U stream
- Changed uploading implementation for internal recorder to allow auth tokens with only
read
permission
- Fixed receving session
- Fixed icons sizes
- Added ability to specify ad URL in player config
- Added
destroy
method for services API - Fixed several issues related to auth tokens
- Fixed frames loading in video editor
- Method
void startVideoEditor(@NonNull String filePath)
is removed, usevoid startVideoEditor(@NonNull Uri filePath)
instead
- Exoplayer updated. Added ability to play from Uri
- Fixed crash during preparing analytics events
- File selector improvements
- Added PullToRefresh
- Fixed extra padding inafter app was minimized/maximized
- Fixed playing from selected position
- Fixed player UI when playing completed
- Seek bar reimplemented to make seek changes applied immediately, without rebuilding the layout
- Fixed cursor and borders moving, borders set before and after first/last frames
- Reset seekbar after app minimized
- Added cancelled by user callback for videoeditor
- Dynamic frames count calculation based on frame preview size
- Videos API update:
- changed implementation for getImage/Video url
- removed downloadVideo/Image methods
- removed applyEffects method
- Fixed the crash in uploader when the app goes background
- Improvements for frames preview in video editor
- Added config to start uploading without service and notification
- Fixed QR scanner config builder.
- Added retry for 403 responses with auth tokens (case when IP changed)
- Added
shouldAllowMultipleSelection
for file selector config
- Executing HTTP requests one by one when auth tokens used.
- Fixed crash when running analytics service in the background.
- Removed deprecated QR callback method
- Added support for 1:1 aspect ratio
- QR scanner callback improvements
- Changed arg type of
sendReport
method - General SDK API style improvements
- Fixed authentication for player
- Dependencies updated
- New: added filters for file selector and switcher for grid/list modes
- New: changed toolbar icon in file selector from arrow to cross, other UI improvements
- New: added
rerecord
event for recorder callback - Changes:
- arguments in
uploadProgress
event uploadingStarted
now containsvideoToken
instead ofpath
in args
- arguments in
- Changed implementation for single-choice mode in file selector.
- Added ability to confirm uploading for file on Player screen.
- uploadFromFileSelector method is deprecated, use startFileSelector instead.
- Fixed session expiration issue which was blocking some cases for auth token.
- Fixed issue with sending analytics events when there is no app token.
- Fixed video_profile type in video model
- Fixed meta_profile type in video model and profile types for stream model
- Trimming request arguments
- Changed field types for _profile values
- Changed UI for countdown timer
- Dependencies updated
- some fixes for Xamarin
- File selector now in single-selection mode bu default. Added a flag to allow multiple selection.
- Fixed crash when session expired.
- Added methods for sending support email and crash report
- Changed fields names for better code style in Kotlin
- Fixed cancel action for screen recorder.
- Fixed screen recording service when running on android 9+
- onPictureTaken callback hidden, since image-only not implemented yet
- Fixed handling permissions list when access forbidden
- Fixed error callback for file selector
- Fixed pause/resume for player
- Fixed progress bar when loading folders list.
- Added temporary fix for file selector for Android API 29
- Some methods renamed to make better Kotlin compatibility.
- Version update to 2.x.x just to be consistent with internal documentation.
- Added separate config class for file selector
- Added separate callback for uploader
- AndroidX migration
- Camera
- forced use of Camera1 API on devices with Camera support level INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED and INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
- Several camera issues fixed
- File selector
- added header text
- UI improvements
- now it uses a player from the SDK
- max duration config support
- back navigation improvements
- Improvements of methods, argumets and other for correct usage with Kotlin.
- Ziggeo's crash tracker (/debugger) turned off by default
- Allowed landscape device orientation.
- Other changes
- Removed Timber and VideoCache dependencies
- Some internal changes for Xamarin
- Old deprecated things removed
- Added more configs to
RecorderConfig
:resolution
,videoBitrate
,audioBitrate
,audioSampleRate
- Added video streaming
- Zoom enabled by default
- Added sound amplitude chart for audio recorder
- Added seek bar for audio recorder and player
- Added support for FullHD aspect ratio
- Fixed crash during the very first initialisation.
- Method renamed to be consistent with common naming styles. This will allow kotlin/dart replace getter/setter with direct field access syntax.
configureUploading
->setUploadingConfig
configureRecorder
->setRecorderConfig
configurePlayer
->setPlayerConfig
- Added constructors and getters/setters for styling classes
- Fixed crash in CrashLogger in case of lack of the crash info
- Implemented correct
equals
andhashCode
forSessionModel
andUploadingConfig
- Fixed several callback events for uploading
- Fixed
cancelledByUser
callback for file selector - Switched from
implementation
toapi
for internal OkHttp dependency
- Methods
configureUploading
,configureRecorder
,configurePlayer
are deprecated. UsesetUploadingConfig
,setRecorderConfig
,setPlayerConfig
instead. - Fixed crash during first initialisation
- Fixed extra args for file selector
- Fixed fullHD resolution support.
- Added zoom support for the camera.
- Added
mute
config for player
- Fixed access to the recorder configuration.
- Fixed issue in player cause by wrong type in JSON
- Fixed stop confirmation for screen recorder
- Fixes for Xamarin integration
- Added
setSensorCallback()
method for all possible info from sensors - Added docs for several methods
- Fixed player issue with seekbar: it was not possible to change the progress of the video
- Fixes for Xamarin integration:
- removed duplicated
error
callback from two different interfaces, instead, it moved to a separateIErrorCallback
- own styles implemented instead of using Exoplayer’s styles
- fixed assigning of ids for views
- added attrs missing in Exoplayer’s binding
- removed duplicated
-
Changes in autostart logic. Method
setAutostartRecordingAfter
is deprecated, instead there are now two methods a.setAutostartRecording
- iftrue
, when the recorder is initialized, the count down timer will be started. After the time will run out the recording will be started. Default iffalse
. b.setStartDelay
- set the value for count down timer before start the recording. Default is3
seconds. -
Foreground service for recordings uploading. During the uploading notifications will be visible in notification bar. In case of error there are two options available
Retry
andTry later
In case of try later the SDK will try to make uploading after the delay. Default delay is 2 hours. Also it is possible to do uploading only when WiFi is available. See sample below:
ziggeo.configureUploading(new UploadingConfig.Builder()
.syncInterval(15 * 60 * 1000)
.useWifiOnly(true)
.build());
- Face outline image.
FaceOutlineConfig config = new FaceOutlineConfig();
config.setShow(true);
// config.setOutlineImageResource(R.drawable.youImage); // optional
// put created object in
RecorderConfig
- New file selector with multiple selection ability.
- `ziggeo.clearRecorder` - the method that allows the devs to clear the cache through code. Would remove the videos even if they are not uploaded.
- Playlist for the player. `ziggo.startPlayer(token1, token2, ...)`
- Player theming.
There is now ability to style the player. You can use one of the predefined themes and change colors for them. Styling available through styles.xml and through code. If both way used, only params in code will be handled.
Sample can be found in `ZiggeoPlayerActivity`.
- New callback system for player, recorder and camera
- Subtitles for video player
playerConfig.showSubtitles(boolean value)
Fixes/Small changes
- New method
getNumberOfCameras()
inCameraView
class. - fixed camera issue on Samsung Galaxy J7
- date pattern in file names changed from
dd-MM-yyyy_hh-mm-ss
todd.MM.yyyy_HH.mm.ss
Broken changes
- java8
- method
startRecorder(boolean audioOnly)
is deprecated. Please, usestartAudioRecorder()
. - method
startRecorder()
is deprecated. Please, usestartCameraRecorder()
. - method
attachRecorder(FragmentManager fragmentManager, int contentId)
is deprecated. Please, useattachCameraRecorder(FragmentManager fragmentManager, int contentId)
. - method
attachRecorder(FragmentManager fragmentManager, int contentId, boolean audioOnly)
is deprecated. Please, useattachAudioRecorder(FragmentManager fragmentManager, int contentId)
. - methods
setExtraArgsForRecorder
,getExtraArgsForRecorder
,configureStopRecordingConfirmationDialog
,getStopRecordingConfirmationDialogConfig
,setAutostartRecordingAfter
,setAutostartRecordingAfter
,getAutostartRecordingAfter
,setVideoRecordingProcessCallback
,setRecordingProcessCallback
,getVideoRecordingProcessCallback
,getRecordingProcessCallback
,setTurnOffCameraWhileUploading
,setColorForStoppedCameraOverlay
,setDrawableForStoppedCameraOverlay
,setCoverSelectorEnabled
,setCoverSelectorEnabled
,setMaxRecordingDuration
,setPreferredCameraFacing
,setPreferredQuality
,getPreferredQuality
,setCameraSwitchDisabled
,setSendImmediately
,isSendImmediately
are deprecated. Please, use methods inCameraRecorderConfig.Builder
class. - methods
configureLocalPlayback
,getLocalPlaybackConfig
,setExtraArgsForPlayer
are deprecated. Please, use corresponding - method
addCallback
inCameraView
class is deprecated. Please, usesetCameraCallback
- Added methods for setting theme params for non-native SDKs.
- Deep linking support
- Playlist support
- Added theming params for hiding recorder and player controls
- Audio recorder implemented
IVideoRecordingCallback
is deprecated, useIRecordingProcessCallback
instead.
- Fixed token value returned by
create
request for Xamarin.
- Method
onProgressUpdate(long sentBytes, long totalBytes)
in ProgressCallback class is deprecated. UseonProgressUpdate(@NonNull File file, long sentBytes, long totalBytes)
instead. - Added delegates for tracking Uploading progress in Xamarin
- Gradle version updated
- Fixed crash logging
- Added deep linking for player
- Player switched to CDN server.
- Fixed issue when screen recording is not started if screen share permission has not been given previously.
- Methods
startScreenRecordService
,stopScreenRecordService
,stopScreenRecord
are deprecated. - Added check on null bundle to prevent crash.
- New: Methods marked as deprecated
startScreenCaptureService
,stopScreenCaptureService
,startScreenCapture
,stopScreenCapture
Use insteadstartScreenRecordService
,stopScreenRecordService
,startScreenRecord
,stopScreenRecord
- New: Added send-and-close feature for screen recorder.
- New: Showing sound bar on player screen when sound icon was long clicked.
- Fix: Forced screen recorder service notification text and background color to black
- Fix: Fixed crash when extra args for recorder are null
- Fix: Added nullability annotations for player
- Fix: For screen recorder if cover shot selector is visible, it will be closed when new recording is started
- Fix: UI lag when stopping the recording
- Fix: Removed library for getting the device name
- Added crash tracking system.
- Bugfixing
- Gradle version updated
- Removed old deprecated methods
setExtraArgsForCreateVideo
setExtraArgsForEmbeddedRecorder
setExtraArgsForEmbeddedPlayer
setExtraArgsForPlayVideo
setRecorderCacheFolder
getRecorderCacheFolder
setMaxRecorderCacheSize
getMaxRecorderCacheSize
setMaxRecorderCacheFilesCount
getMaxRecorderCacheFilesCount
setPlayerCacheFolder
getPlayerCacheFolder
setMaxPlayerCacheSize
getMaxPlayerCacheSize
setMaxPlayerCacheFilesCount
getMaxPlayerCacheFilesCount
initStopRecordingConfirmationDialog
getCacheFolder
getMaxCachedVideosCount
getMaxCacheSize
setMaxCachedFilesCount
- Added mute sound functionality for player
- API 21+: Added screen recorder feature.
- Fixed vector icon causing crash on android below API 21.
com.ziggeo.androidsdk.net.rest.ProgressCallback
moved tocom.ziggeo.androidsdk.net.callbacks.ProgressCallback
- Class
ResponseException
renamed toResponseException
- In class
ResponseException
methodsgetResponse
andsetResponse
are deprecated. UsegetMessage
andsetMessage
instead. - Classes
IStreamsService
,StreamsService
,IVideosService
,VideosService
moved fromcom.ziggeo.androidsdk.net.rest.services.
tocom.ziggeo.androidsdk.net.services.
- Fixed error during recorder initialisation on Android 8.0 for Camera2 api.
- Changed checkmark behavior - currently it closes the recorder. Also the recorder will be closed if video is sent immediately after the recording is finished.
- Changed return type for
ziggeo.getVideoRecordingProcessCallback()
from class to its interface. - Fixed issue 20. Lost bundle args were causing a crash.
- Gradle version updated.
- Small xml layout improvements.
- Removed deprecated method from IVideoRecordingCallback.
- Added applyEffect method to Videos API.
- Added callback to indicate video uploading started.
- Fixed recorder icons visibility
- Removed rests of Hungarian notation.
- Replaced old icons with vectors
- General code/layouts improvements
- Additional permission check for player
- Small code improvements and bugfixes
- Removed some unused classes.
- Small code improvements.
- Improved gradle config for naming of output build files.
- Added a few getters to prevent issues when binding the SDK with Xamarin.
- Added ability to set client and server auth tokens for all requests.
- Fix: Added 1 hour expiration time for a session token
- Config improvements:
- Gradle wrapper updated to 4.4
- Gradle plugin version updated to 3.1.0
- Build tools version updated to 27.0.3
- Project dependencies provided with the latest approach
-
Docs updated.
-
Fixed issue when dialog for stop recording confirmation overlaps with covershot selection dialog.
-
Fixed issue when dialog for stop recording confirmation does not hide when recording actually stops after time limit exceeded.
-
Changes for player's cache
-
To configure cache
ziggeo.configureLocalPlayback(@Nullable LocalPlaybackConfig config)
should be used. Other methods is deprecated. -
Default maximum cache size changed to 512Mb
-
Default maximum files count in cache changed to 5
-
Default cache path cahnged to
/Android/data/[app_package_name]/cache/video-cache/
if card is mounted and app has appropriate permission orvideo-cache
subdirectory in default application's cache directory otherwise. -
Added
ziggeo.setDrawableForStoppedCameraOverlay(@DrawableRes int drawableResource)
-
Deprecated
onError()
method in IVideoRecordingCallback and addedonError(throwable)
. -
Deprecated method for configuration of stop rectoring confirmation dialog. Instead of
ziggeo.initStopRecordingConfirmationDialog(boolean show, @StringRes int titleResId, @StringRes int mesResId, @StringRes int posBtnResId, @StringRes int negBtnResId)
please use
ziggeo.configureStopRecordingConfirmationDialog(@Nullable StopRecordingConfirmationDialogConfig config)
-
Deprecated methods related to recorder's cache
-
ziggeo.setRecorderCacheFolder(@NonNull String cacheFolderPath)
-
ziggeo.getRecorderCacheFolder()
-
ziggeo.setMaxRecorderCacheSize(long maxCacheSize)
-
ziggeo.getMaxRecorderCacheSize()
-
ziggeo.setMaxRecorderCacheFilesCount(int filesCount)
-
ziggeo.getMaxRecorderCacheFilesCount()
-
Deleted old deprecated method for overriding layout for recorder
ziggeo.setRecorderLayout(@LayoutRes int layoutId)
-
Deleted old deprecated classes and methods
IOUtils.checkVideoIsInCache(String token)
HttpStatusCodes
CameraHelper
ziggeo.cancel()
ziggeo.setCacheFolder(@NonNull String cacheFolderPath)
ziggeo.setMaxCacheSize(long maxCacheSize)
ziggeo.setShowCoverShotSelectionPopup(boolean showCoverShotSelectionPopup)
ziggeo.startPlayer(@NonNull Context context, @NonNull Uri path)
ziggeo.startPlayer(@NonNull Context context, @NonNull String videoToken)
ziggeo.attachRecorder(@NonNull FragmentManager fragmentManager, int contentId, long maxDurationInMillis, Callback callback)
ziggeo.attachRecorder(@NonNull FragmentManager manager, int contentId, long maxDurationInMillis, boolean disableCameraSwitching, Callback callback)
ziggeo.attachRecorder(@NonNull FragmentManager manager, int contentId, long maxDurationInMillis, int preferredCameraId, Callback callback)
ziggeo.attachRecorder(@NonNull FragmentManager manager, int contentId, long maxDurationInMillis, CameraHelper.Quality videoQuality, Callback callback)
ziggeo.attachRecorder(@NonNull FragmentManager manager, int contentId, long maxDurationInMillis, boolean disableCameraSwitching, CameraHelper.Quality videoQuality, Callback callback)
ziggeo.attachRecorder(@NonNull FragmentManager manager, int contentId, long maxDurationInMillis, int preferredCameraId, CameraHelper.Quality videoQuality, Callback callback)
ziggeo.createVideo(@NonNull Context context, long maxDurationInMillis, @Nullable Callback callback)
ziggeo.createVideo(@NonNull Context context, long maxDurationInMillis, boolean disableCameraSwitching, @Nullable Callback callback)
ziggeo.createVideo(@NonNull Context context, long maxDurationInMillis, @CameraView.Facing int preferredCamera, @Nullable Callback callback)
ziggeo.createVideo(@NonNull Context context, long maxDurationInMillis, @Nullable CameraHelper.Quality videoQuality, @Nullable Callback callback)
ziggeo.createVideo(@NonNull Context context, long maxDurationInMillis, boolean disableCameraSwitching, @Nullable CameraHelper.Quality videoQuality, @Nullable Callback callback)
ziggeo.createVideo(@NonNull Context context, long maxDurationInMillis, @CameraView.Facing int preferredCamera, @Nullable CameraHelper.Quality videoQuality, @Nullable Callback callback)
- Lambdas removed from the SDK.
- Method
setExtraArgsForCreateVideo
was deprecated, please usesetExtraArgsForEmbeddedRecorder
. - Method
setExtraArgsForPlayVideo
was deprecated, please usesetExtraArgsForEmbeddedPlayer
.
- Fix: Session token now automatically appended to every request.
- New: Removed deprecated callbacks for video compressor.
- Fix: Fixed authentication through server/client tokens.
- New: Removed deprecated video encoder.
- New: Changed launch mode for recorder activity to
singleInstance
.
- New: Added settings for player cache.
- Fix: Cache for player
- Fix: Checking for filled cache.
- Fix: Blank preview for case when the app returns from background.
- Fix: Fixed issue with loosing config for camera in case of autoswitching from Camera2 to Camera1.
- Fix: Added seconds to video file name to prevent losing videos recorded during one minute.
- Fix: Crash when starting activity from application context.
- Fix: Removed compressor for medium video size. Lower bitrate set for medium and low quality.
- Fix: Showing preview after start pressed if the preview was hidden.
- Versions of dependencies updated.
- New: Analytics integration.
- Fix: Orientation calculation for recorder in Camera1
- Fix: Params transferring between Ziggeo object and internal activities/fragments
- Fix: Default state for
switchCameraDisabled
set tofalse
- Other fixes and improvements
- New: Added ability to start player as separate screen.
- Fix: Fixed player layout.
- Fix: Fixed logic for immediate video sending.
- New: Methods for getting Videos and Stream services exposed to interface.
- New: Video compressor exposed to interface.
- Fix: Forced AAC audio codec and H264 video codec for Camera1
- Fix: Improved video size scaling for medium quality
- New: Added video compressor in case of using medium video quality
- New: Added two methods to VideoRecordingCallback to indicate compression progress
- Fix: Missing resource id crash
- Fix: Removed wrong
Deprecated
mark
- Broken compatibility:
CameraView
should be using for layout customisation instead ofSurfaceView
- New: Customisation through layout is
Deprecated
.CameraView
should be used instead. - Fix: Reduced video file size
- New: Added quality settings for
CameraView
- Fix: Bugfixing
- Fix: Resolved issue related to uploading speed.
- New:
createVideo
methods now deprecated. All params should be set through setters. UsestartRecorder
instead. - New: Change
onProgressUpdate
callback. Now it acceptssent
andtotal
bytes as args. - New: If max duration is zero video will be endless.
- New: Added extra time format for case of zero maximum duration.
- Fix: Small issues
- Fix: UI improvements
- Fix: Refactoring of SDK configuration
- Fix: Issue related to missing cover selector dialog
- New: SDK refactored with support library
- New: Added sample for playing uploaded video
- Fix: Proper selection of resolution for video recording
- New: Added support for EU host.
- Fix: Minor UI fixes
- New: Added special
CameraView
class to provide ability to create fully customizable recorder.
- New: Ability to get sdk via simple gradle dependency
- New: Autostart recording after delay using
ziggeo.setAutostartRecordingAfter(long millis)
- New:
delete()
method forStreamService
andVideoService
was deprecated. Please, usedestroy()
instead. - New: Added dialog to confirm stop recording. Use through
ziggeo.initStopRecordingConfirmationDialog()
- New: Ability to format time on recorder screen
ziggeo.setTimeFormatAction()