Skip to content

VideoView that plays video only when 👀 are open and 👦 is detected with various other features

License

Notifications You must be signed in to change notification settings

Pradyuman7/LookAtMe

Repository files navigation

LookAtMe

API Android Arsenal AwesomeAndroid Android Weekly Android Dev Digest Android Sweets Android-Tutorial-Online

VideoView that plays video only when 👀 are open and 👦 is detected with various other features

GIF

AndroidPub (Medium) Post

You can read the AndroidPub post about this library, the perks it provides and other details here.

Screenshots

screenshot_2019-01-10-07-02-17-959_com pd trackeye screenshot_2019-01-10-07-02-22-894_com pd trackeye

Prerequisites

Add this in your root build.gradle file (not your module build.gradle file):

allprojects {
		repositories {
			...
			maven { url 'https://www.jitpack.io' }
		}
	}

Dependency

Add this to your module's build.gradle file (make sure the version matches the JitPack badge above):

dependencies {
	        implementation 'com.github.Pradyuman7:LookAtMe:Version1.0'
}

For latest release, please check the JitPack version and match it with the dependency.

dependencies {
	        implementation 'com.github.Pradyuman7:LookAtMe:Version2.0'
}

Usage

LookAtMe is very easy to use and can be directly used in your application. You just need to first declare the LookAtMe variable in your activity, and add the following in layout of your activity (XML file).

        private LookAtMe lookAtMe;
        lookAtMe = findViewById(R.id.lookme);
	<com.pd.lookatme.LookAtMe
        	android:id="@+id/lookme"
        	android:layout_width="match_parent"
        	android:layout_height="250dp" />

After this, just initiallise LookAtMe variable with the activity context, add the video URI, start the video and just call setLookMe(), the whole code would look something like this:

        lookAtMe.init(this);
        lookAtMe.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.videoplayback));
	// lookAtMe.setVideoPath("http://website.com/video/mp4/62000/62792m.mp4"); to use video from a url
        
	lookAtMe.start();
        lookAtMe.setLookMe();

You can also personalise the experience according to your need, using init(). In this method you can add if you want the eye-tracking mode to be FAST or ACCURATE, and also which camera to use, front or back. The method bodies look like this:

	public void init(Context activityContext, String mode, String cameraFace){
        	// add mode to be fast or accurate and cameraFace to be front or back
    	}
	public void init(Context activityContext, String mode){
        	// add mode to be accurate or fast   
    	}

Version2.0 additions

Now in Version2.0 the developer can also access that if the user laughed / smiled during the video. For this, just use this initWithSmilingStatus() method instead of the normal init() like this:

	lookAtMe.initWithSmilingStatus(this); // for smiling status of the user

To access if the user smiled during the video after this, currently you have to acess the log of the app programatically. Currently, LookAtMe counts when user smiles and for how many frames. If the user smiles for 100 frames in total, LookAtMe logs a line stating that "the user smiled for 100 Frames!". After that count resets to 0.

You can access the log of your android app like this:

	try {
  		Process process = Runtime.getRuntime().exec("logcat");
  		BufferedReader bufferedReader = new BufferedReader(
  		new InputStreamReader(process.getInputStream()));

  		StringBuilder log = new StringBuilder();
  		String line = "";
  		while ((line = bufferedReader.readLine()) != null) {
	    		log.append(line);
  		}
  		TextView tv = (TextView)findViewById(R.id.textView1);
  		tv.setText(log.toString());
  	} 
	catch (IOException e) {}

To know more about this, please refer this link.

Pull Request

Have some new ideas or found a bug? Do not hesitate to open an issue and make a pull request.

License

LookAtME is under License: Apache. See the LICENSE file for more info.

Credits

The video being played in the android app is owned solely by Pixar animations and the author lays no claim over the video.