{"id":18270167,"url":"https://github.com/Kickflip/kickflip-android-sdk","last_synced_at":"2025-04-04T23:31:51.158Z","repository":{"id":13431400,"uuid":"16120312","full_name":"Kickflip/kickflip-android-sdk","owner":"Kickflip","description":"Kickflip Android SDK - Live Video Streaming to the Cloud","archived":false,"fork":false,"pushed_at":"2020-10-01T16:08:42.000Z","size":38981,"stargazers_count":658,"open_issues_count":33,"forks_count":212,"subscribers_count":79,"default_branch":"master","last_synced_at":"2024-11-05T11:52:25.604Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://kickflip.io","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kickflip.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-21T21:58:27.000Z","updated_at":"2024-10-18T14:34:43.000Z","dependencies_parsed_at":"2022-09-22T21:52:35.319Z","dependency_job_id":null,"html_url":"https://github.com/Kickflip/kickflip-android-sdk","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kickflip%2Fkickflip-android-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kickflip%2Fkickflip-android-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kickflip%2Fkickflip-android-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kickflip%2Fkickflip-android-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kickflip","download_url":"https://codeload.github.com/Kickflip/kickflip-android-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266476,"owners_count":20910831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T11:38:21.686Z","updated_at":"2025-04-04T23:31:46.148Z","avatar_url":"https://github.com/Kickflip.png","language":"Java","funding_links":[],"categories":["etc"],"sub_categories":[],"readme":"# Kickflip SDK for Android  [ ![Download](https://api.bintray.com/packages/onlyinamerica/Kickflip/io.kickflip%3Asdk/images/download.svg) ](https://bintray.com/onlyinamerica/Kickflip/io.kickflip%3Asdk/_latestVersion)\n\n![kickflip live broadcast screenshot](http://i.imgur.com/ELljE1a.jpg)\n\n**The Kickflip Android SDK manages all the plumbing for your cloud video application**. With this SDK you can broadcast Live, High Definition [HTTP-HLS](http://en.wikipedia.org/wiki/HTTP_Live_Streaming) video, associate these broadcasts with users, and query broadcasts made by your users. All you need is a [Kickflip.io](https://kickflip.io) account.\n\nThe Kickflip Android SDK requires Android 4.3+ (API 18+).\n\nCheck out our Android example application on [Github](https://github.com/Kickflip/kickflip-android-example) or Google Play (below).\n[![Google Play link](http://steverichey.github.io/google-play-badge-svg/img/en_get.svg)](https://play.google.com/store/apps/details?id=io.kickflip.sample)\n\nAlso check out our slick [iOS SDK](https://github.com/Kickflip/kickflip-ios-sdk) and [iOS Example application](https://github.com/Kickflip/kickflip-ios-example)\n\n## Features\n\n+ **High Definition [HTTP Live Streaming](http://en.wikipedia.org/wiki/HTTP_Live_Streaming)**\n+ **Background recording**\n+ **OpenGL video effects**\n+ **Pinch Zoom**\n+ **Blazing fast, geo-aware upstreams**\n+ **Global cloud-based Content Distribution Network**\n\n## Quickstart\n\n0. Make a [kickflip.io](https://kickflip.io) account to register an Application and receive your **Client Key** and **Client Secret**. You'll need these later.\n\n1. Ensure the `minSdkVersion` of your application is **18** (Android 4.3) and the `compileSdkVersion` is **19** (Android 4.4).\n\n\t```groovy\n\tandroid {\n        compileSdkVersion 19\n        ...\n        defaultConfig {\n            minSdkVersion 18\n            targetSdkVersion 19\n            ...\n        }\n        ...\n    }\n    ```\n\n2. Add Kickflip to your app as a Maven artifact or, if you plan to modify Kickflip, as a submodule. `build.gradle`:\n\n    **Maven Artifact:**\n\t```groovy\n\t//build.gradle\n\t...\n\tdependencies {\n   \t\tcompile 'io.kickflip:sdk:1.3.1'\n\t}\n\t```\n\t\n    **Git Submodule:**\n    First add Kickflip as a submodule with git.\n    \n    ```bash\n    $ cd ./path/to/project\n    $ git submodule add https://github.com/Kickflip/kickflip-android-sdk.git ./submodules/kickflip-android-sdk/\n    ```\n\n    Next, add the submodule as a gradle dependency\n    ```groovy\n    //settings.gradle\n    include ':app'\n    include ':submodules:kickflip-android-sdk:sdk'\n    ```\n    \n    ```groovy\n    //your app module's build.gradle\n    ...\n    dependencies {\n        ...\n        compile project(':submodules:kickflip-android-sdk:sdk')\n    }\n    ```\n\n3. Add the following to your app's `AndroidManifest.xml`:\n\n    **Permissions** (Optional: These will be automatically merged into your AndroidManifest.xml)\n\t```xml\t       \n    \u003cuses-permission android:name=\"android.permission.INTERNET\"/\u003e\n    \u003cuses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/\u003e\n    \u003cuses-permission android:name=\"android.permission.CAMERA\"/\u003e\n    \u003cuses-permission android:name=\"android.permission.RECORD_AUDIO\"/\u003e\n    \u003cuses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/\u003e\n    \u003cuses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/\u003e\n\t```\n\t\n\t**BroadcastActivity**\n\t\n\t```xml\n    \u003cactivity\n         android:name=\"io.kickflip.sdk.activity.BroadcastActivity\"\n         android:screenOrientation=\"landscape\"\u003e\n    \u003c/activity\u003e\n\t```\n\n\t**MediaPlayerActivity** (Optional)\n\t\n\tMediaPlayerActivity handles playing HLS streams with some additional features over Android's MediaPlayer (like indicating when a stream is \"Live\" and more accurately inferring the stream duration).\n\t\n\t```xml\n\t\u003cactivity\n            android:name=\"io.kickflip.sdk.activity.MediaPlayerActivity\"\n            android:screenOrientation=\"landscape\" \u003e\n    \u003c/activity\u003e\n\t```\n4. Provide your Kickflip keys and start `BroadcastActivity` when appropriate:\n\n\t```java\n\tKickflip.setup(this, CLIENT_ID, CLIENT_SECRET);\n\tKickflip.startBroadcastActivity(this, new BroadcastListener() {\n        @Override\n        public void onBroadcastStart() {\n        \n        }\n\n        @Override\n        public void onBroadcastLive(Stream stream) {\n            Log.i(TAG, \"BroadcastLive @ \" + stream.getKickflipUrl());\n        }\n\n        @Override\n        public void onBroadcastStop() {\n        \n        }\n\n        @Override\n        public void onBroadcastError() {\n        \n        }\n    });\n\t```\n   \t\n`BroadcastActivity` provides a pre-built UI including a camera preview and controls for starting, stopping, and sharing the broadcast.\n\n## Building\n\n1. Define the Android SDK root location as $ANDROID_HOME in your environment. It's also a good idea to add the `platform-tools` and `tools` directories to your path so you can easily access common Android utilities, like adb.\n\nAn example on Mac OS X using Android Studio:\n\n```\n# ~/.bash_profile\n\n# Android\nexport ANDROID_HOME=\"/Applications/Android Studio.app/sdk\"\nexport PATH=$ANDROID_HOME\"/tools\":$ANDROID_HOME\"/platform-tools\":$PATH\n```\n\n\n2. From this directory run:\n\n\t    $ ./gradlew assembleDebug\n\nThe Kickflip SDK .aar will be in `./sdk/build/libs`.\n\nYou may also import this project into Android Studio for easy development.\n\n## Documentation\n\nFor a closer look at what you do with Kickflip, check out our [Android Documentation](https://github.com/Kickflip/kickflip-docs/tree/master/android) and [Android API Reference](http://kickflip.github.io/kickflip-android-sdk/reference/packages.html). We also have some [tutorials](https://github.com/Kickflip/kickflip-docs/tree/master/tutorials) to help you get started.\n\n## License\n\nApache 2.0\n\n\tCopyright 2014 OpenWatch, Inc.\n\t\n\tLicensed under the Apache License, Version 2.0 (the \"License\");\n\tyou may not use this file except in compliance with the License.\n\tYou may obtain a copy of the License at\n\t\n\t    http://www.apache.org/licenses/LICENSE-2.0\n\t\n\tUnless required by applicable law or agreed to in writing, software\n\tdistributed under the License is distributed on an \"AS IS\" BASIS,\n\tWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\tSee the License for the specific language governing permissions and\n\tlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKickflip%2Fkickflip-android-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKickflip%2Fkickflip-android-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKickflip%2Fkickflip-android-sdk/lists"}