Upload Media
This documentation provides guidelines on uploading images and video to server using the TruVideo Media SDK. The SDK offers simple methods to integrate upload functionalities into your application.
Prerequisites
Ensure you have integrated the TruVideo Core SDK into your project and completed with the authentication process
Camera module will provide MediaItem or simply provide filepath to upload (optional)
Step 1 : Create a MediaBuilder object
final TruvideoSdkMediaFileUploadRequestBuilder builder = TruvideoSdkMedia.getInstance().FileUploadRequestBuilder(filePath);
Step 2 : Set tags or metaData mediaBuilder object if required
// Option 1: use the file upload request builder directly
builder.addTag("key", "value");
builder.addTag("color", "red");
builder.addTag("order-number", "123");
// Option 2: use the tag builder
TruvideoSdkMediaTags tags = TruvideoSdkMediaTags.builder()
.set("key", "value")
.set("color", "red")
.set("order-number", "123")
.build();
builder.setTags(tags);
// --------------------------
// Metadata
// --------------------------
// Option 1: use the file upload request builder directly
builder.addMetadata("key", "value");
builder.addMetadata("list", new String[]{"value1", "value2"});
builder.addMetadata("nested", TruvideoSdkMediaMetadata.builder()
.set("key", "value")
.set("list", new String[]{"value1", "value2"})
.build()
);
// Option 2: use the metadata builder
TruvideoSdkMediaMetadata metadata = TruvideoSdkMediaMetadata
.builder()
.set("key", "value")
.set("list", new String[]{"value1", "value2"})
.set("nested", TruvideoSdkMediaMetadata.builder()
.set("key", "value")
.set("list", new String[]{"value1", "value2"})
.build()
)
.build();
builder.setMetadata(metadata);
Step 3 : Build the request with mediaBuilder
// Build request
builder.build(new TruvideoSdkMediaCallback<TruvideoSdkMediaFileUploadRequest>() {
@Override
public void onComplete(TruvideoSdkMediaFileUploadRequest data) {
// File upload request created successfully
// Send to upload
}
@Override
public void onError(@NonNull TruvideoSdkException exception) {
// Handle error creating the file upload request
}
});
Step 4 : Create object for getting callbacks from the SDK
new TruvideoSdkMediaFileUploadCallback() {
@Override
public void onError(@NonNull String id, @NonNull TruvideoSdkException ex) {
// Handle error uploading the file
}
@Override
public void onProgressChanged(@NonNull String id, float progress) {
// Handle uploading progress
}
@Override
public void onComplete(@NonNull String id, @NonNull TruvideoSdkMediaFileUploadRequest response) {
// File uploaded successfully
}
}
Step 5 : Finally call the upload to push data to server
// File upload request created successfully
// Send to upload
data.upload(new TruvideoSdkMediaCallback<Unit>() {
@Override
public void onComplete(Unit data) {
// Upload started successfully
}
@Override
public void onError(@NonNull TruvideoSdkException exception) {
// Upload started with error
}
},
new TruvideoSdkMediaFileUploadCallback() {
@Override
public void onError(@NonNull String id, @NonNull TruvideoSdkException ex) {
// Handle error uploading the file
}
@Override
public void onProgressChanged(@NonNull String id, float progress) {
// Handle uploading progress
}
@Override
public void onComplete(@NonNull String id, @NonNull TruvideoSdkMediaFileUploadRequest response) {
// File uploaded successfully
}
}
);
Finalize :
After completing this steps the function should look like
import com.truvideo.sdk.media.TruvideoSdkMedia;
import com.truvideo.sdk.media.builder.TruvideoSdkMediaFileUploadRequestBuilder;
import com.truvideo.sdk.media.interfaces.TruvideoSdkMediaCallback;
import com.truvideo.sdk.media.interfaces.TruvideoSdkMediaFileUploadCallback;
import com.truvideo.sdk.media.model.TruvideoSdkMediaFileType;
import com.truvideo.sdk.media.model.TruvideoSdkMediaFileUploadRequest;
import com.truvideo.sdk.media.model.TruvideoSdkMediaMetadata;
import com.truvideo.sdk.media.model.TruvideoSdkMediaTags;
public void upload(Context context, String filePath) {
Loader loader = new Loader(context);
loader.showLoader();
final TruvideoSdkMediaFileUploadRequestBuilder builder = TruvideoSdkMedia.getInstance().FileUploadRequestBuilder(filePath);
//Uri.fromFile(new File(filepath))
// Option 1: use the file upload request builder directly
builder.addTag("key", "value");
builder.addTag("color", "red");
builder.addTag("order-number", "123");
// Option 2: use the tag builder
TruvideoSdkMediaTags tags = TruvideoSdkMediaTags.builder()
.set("key", "value")
.set("color", "red")
.set("order-number", "123")
.build();
builder.setTags(tags);
// --------------------------
// Metadata
// --------------------------
// Option 1: use the file upload request builder directly
builder.addMetadata("key", "value");
builder.addMetadata("list", new String[]{"value1", "value2"});
builder.addMetadata("nested", TruvideoSdkMediaMetadata.builder()
.set("key", "value")
.set("list", new String[]{"value1", "value2"})
.build()
);
// Option 2: use the metadata builder
TruvideoSdkMediaMetadata metadata = TruvideoSdkMediaMetadata
.builder()
.set("key", "value")
.set("list", new String[]{"value1", "value2"})
.set("nested", TruvideoSdkMediaMetadata.builder()
.set("key", "value")
.set("list", new String[]{"value1", "value2"})
.build()
)
.build();
builder.setMetadata(metadata);
// Build request
builder.build(new TruvideoSdkMediaCallback<TruvideoSdkMediaFileUploadRequest>() {
@Override
public void onComplete(TruvideoSdkMediaFileUploadRequest data) {
// File upload request created successfully
// Send to upload
data.upload(new TruvideoSdkMediaCallback<Unit>() {
@Override
public void onComplete(Unit data) {
// Upload started successfully
}
@Override
public void onError(@NonNull TruvideoSdkException exception) {
// Upload started with error
}
},
new TruvideoSdkMediaFileUploadCallback() {
@Override
public void onError(@NonNull String id, @NonNull TruvideoSdkException ex) {
// Handle error uploading the file
}
@Override
public void onProgressChanged(@NonNull String id, float progress) {
// Handle uploading progress
}
@Override
public void onComplete(@NonNull String id, @NonNull TruvideoSdkMediaFileUploadRequest response) {
// File uploaded successfully
}
}
);
}
@Override
public void onError(@NonNull TruvideoSdkException exception) {
// Handle error creating the file upload request
}
});
}
Last updated
Was this helpful?