Android Photo and Video Programming

In this course we discuss how to capitalize on the Android camera within your apps to capture still photos and video. We look at both the simple case of leveraging the built-in camera app and the more detailed scenario of direct camera control.
Course info
Rating
(61)
Level
Intermediate
Updated
Apr 19, 2013
Duration
4h 28m
Table of contents
Android Photo and Video Porgramming - Getting Started
Directly Accessing the Camera
Viewing Camera Display
Taking a Picture
Camera Control
Recording Video
Media Store
Description
Course info
Rating
(61)
Level
Intermediate
Updated
Apr 19, 2013
Duration
4h 28m
Description

Android devices allow people to have access to a high-quality photo and video camera at all times. This course teaches you how to capitalize on the Android device’s camera capabilities and incorporate them into your app. Topics covered include leveraging the built-in camera app, embedding a camera preview window in your app’s UI, capturing still photos, capturing video, attaching GPS location data to your photos, determining camera capabilities, configuring the camera, camera zoom, Android Gallery integration, accessing the Media Store, showing thumbnails, and much more.

About the author
About the author

Jim Wilson is president of JW Hedgehog, Inc., a consulting firm specializing in solutions for the Android, iOS, and Microsoft platforms. Jim has over 30 years of software engineering experience, with the past 15 years heavily focused on creating mobile device and location-based solutions.

More from the author
More courses by Jim Wilson
Section Introduction Transcripts
Section Introduction Transcripts

Android Photo and Video Porgramming - Getting Started
Welcome to the getting started module for the Android Photo and Video Programming course. My name is Jim Wilson. Now, the first thing we're going to look at in this course is the choice between having very close control over the way the video and photo behavior occurs, or do you want ease of programming? Now, throughout most of this course, we're going to look at the details of managing that control. In this module, we're going to look at mostly the kind of the getting started aspects, how do we do things easily? So, the first thing we'll look at there then is that how do we actually capture photos the easy way, right, without doing a lot of programming? The next thing we'll look at is how to specify output location, and when we do that we're going to look at a number of different things. We're going to obviously look at how we associate the output location with a request to capture an image, but we're also going to look at the aspects of being a good citizen. Where are you supposed to put the photos, and then on to the issue of if someone uninstalls your app, do want the photos to stick around or do you want those photos to go away? So, we'll look at all of those issues and how you tie that all back to what we're doing. And then finally, we'll take everything we talked about there with photos and now apply it to videos so we can capture videos in the kind of same easy way we can capture photos.

Directly Accessing the Camera
Welcome to this module on our Android Photo and Video Programming Course on Directly Accessing the Camera. My name is Jim Wilson. So, the first things we'll look at here are the pros and cons of direct camera access. In other words, why would you consider doing the direct camera access as opposed to just using Intents, and what's the cost of doing so? Then we'll look at determining camera support, and there are actually two sides to that. There's cooperating with a Google Play environment and then your programatic considerations on determining camera support. We'll then look at what's involved in actually accessing the camera. Now, that involves opening the camera, as well as closing it, but it also involves things like whether you want a back-facing camera or a front-facing camera or you don't care. And then finally, we'll look at the issues of the camera as a shared resource. What are our responsibilities as a good citizen on the Android platform for managing our connections to the camera, and what are the things that we should be doing in terms of user behavior and when we release the camera and when we can reacquire it.

Viewing Camera Display
Welcome to this module on Viewing the Camera Display within your Android Applications. My name is Jim Wilson. In this module, the first thing we're going to look at is how do we create the camera preview? In other words, how do you actually provide that experience to the user of being able to see what the camera sees at this point? I'll talk about the issues of managing that camera preview. There's a number of things that we have to work with in terms of knowing when to start the preview, knowing when to stop it, and managing how the experience renders out to the user. And then finally, we'll talk about the issue of setting the preview orientation. One of the challenges is that on many devices the natural orientation of the device is different than the orientation of the camera, and in order to provide a user experience that they're not looking at things like sideways, we have to manage some of the preview orientation issues.

Taking a Picture
Welcome to this module on Taking a Picture with the Android Camera API. My name is Jim Wilson. Now, if you've been following along this whole course, we've finally gotten to that thing you've been looking forward to, how do you actually take a picture? And we'll find that this is actually very easy. So, this is going to be a short module, and we'll just walk through a few things. The first thing we'll look is are the steps in actually taking a photo, what is the process it goes through, actually taking the photo, how do we actually implement that in code, and will finish up with how to store that photo.

Camera Control
Welcome to this module on Camera Control within the Android Camera API. My name is Jim Wilson. We're first going to look at camera behavior and what do we mean by camera behavior in this context, look at the issues around controlling camera behavior and what are the general concepts that are behind camera behavior, and then we're going to look at some very specific cases. So, we're first going to look at something called photo resolution. How do we actually improve the resolution of the pictures we capture or reduce the size of the files and manage that? Look at the issue of photo metadata. How do we associate extended data with the photos? This could be things like geotagging, there could be some issues around camera rotation, right, those kinds of issues. And we'll finish up controlling camera zoom, and we'll see there are a number of issues we'll look at in terms of doing that sort of thing well.

Recording Video
Welcome to this module on recording video. My name is Jim Wilson. As we go through this module, the key thing we're going to talk about is this thing called the MediaRecorder. So, we'll introduce the MediaRecorder first. Then we'll go through the MediaRecorder state overview. MediaRecorder is a very general purpose class, and because it can do so many things, it's important that we transition through the process of using it in a specific order, so we'll walk through that a little bit. We'll then look at the details of how to set up the MediaRecorder, and one of the key things we'll talk about there is something called profiles that actually really simplifies that process for us. We'll then look at how to actually start the process of recording a video and stop it. We'll look at the issues around cleanup and making sure we give back all the resources that we're holding. We'll look at this issue of camera orientation again. As we've seen in many other parts of this course, the orientation of how the device is held can affect the way things appear later, so we'll see how that applies to video. And we'll finish up on the issue of profiles and how to work with them effectively.

Media Store
Welcome to this module on the Android Media Store. My name is Jim Wilson. In this module, we're going to talk about a few different things. One, of course, is the Media Store. What is it? What does it mean? A very important aspect of the Media Store is something called the Media Scanner Service. How do we scan a file using the scanner service to get it into the Media Store? And then one of the nice benefits of the Media Store is access to thumbnails, so we'll look at how to do that.