kickflip-android-sdk | Kickflip Android SDK - Live Video Streaming | Video Utils library
kandi X-RAY | kickflip-android-sdk Summary
kandi X-RAY | kickflip-android-sdk Summary
The Kickflip Android SDK manages all the plumbing for your cloud video application. With this SDK you can broadcast Live, High Definition HTTP-HLS video, associate these broadcasts with users, and query broadcasts made by your users. All you need is a Kickflip.io account. The Kickflip Android SDK requires Android 4.3+ (API 18+). Check out our Android example application on Github or Google Play (below). Also check out our slick iOS SDK and iOS Example application.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Called when a frame is available
- Saves the current EGL surface to a file
- Releases the encoder
- Drain encoder
- Runs the audio encode loop
- Send the current audio record to the encoder
- Checks to see if the buffer has a fixed amount of audio pts
- Set the surface texture
- Opens a camera with the specified width and height
- Initializes the instance stream info
- Called when a new manifest file is updated
- Writes a sample data to the device
- Handles event written
- Initializes the recording surface
- Start broadcast broadcast activity
- Returns a suitable EGLConfig
- Runs the asynchronous transfer
- Create a texture object with the specified text content
- Creates a new program
- Initialize view
- Create a texture from an image
- Setup the media player
- Updates the user s meta information
- The encoder has already been added
- Called when a video frame is drawn
- Handles a new segment
kickflip-android-sdk Key Features
kickflip-android-sdk Examples and Code Snippets
Community Discussions
Trending Discussions on kickflip-android-sdk
QUESTION
I have an app that streams video using Kickflip and ButterflyTV libRTMP
Now for 99% percent of the time the app is working ok, but from time to time I get a native segmentation fault that I am not able to debug, since messages are too cryptic:
...ANSWER
Answered 2017-Sep-08 at 17:19"You can store the data in a
byte[]
. This allows very fast access from managed code. On the native side, however, you're not guaranteed to be able to access the data without having to copy it."
See https://developer.android.com/training/articles/perf-jni.html
Some musings and things to try:
- The code where it falls over is very generic, so probably no bug there
- It must be the
frame
data has been removed/damaged/locked/moved - Has the Java garbage collector removed OR relocated the data ?
- You could write detailed debug to a file, overwriting it on every frame, so you only have a small log with the last debug info.
- send a local copy of the
frame
variable info (usingByteBuffer
) tomRTMPMuxer.writeVideo
Unlike regularbyte
buffers,inByteBuffer
the storage is not allocated on the managedheap
, and can always be accessed directly from native code.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install kickflip-android-sdk
Make a kickflip.io account to register an Application and receive your Client Key and Client Secret. You'll need these later.
Ensure the minSdkVersion of your application is 18 (Android 4.3) and the compileSdkVersion is 19 (Android 4.4). android { compileSdkVersion 19 ... defaultConfig { minSdkVersion 18 targetSdkVersion 19 ... } ... }
Add Kickflip to your app as a Maven artifact or, if you plan to modify Kickflip, as a submodule. build.gradle: Maven Artifact: //build.gradle ... dependencies { compile 'io.kickflip:sdk:1.3.1' } Git Submodule: First add Kickflip as a submodule with git. $ cd ./path/to/project $ git submodule add https://github.com/Kickflip/kickflip-android-sdk.git ./submodules/kickflip-android-sdk/ Next, add the submodule as a gradle dependency //settings.gradle include ':app' include ':submodules:kickflip-android-sdk:sdk' //your app module's build.gradle ... dependencies { ... compile project(':submodules:kickflip-android-sdk:sdk') }
Add the following to your app's AndroidManifest.xml: Permissions (Optional: These will be automatically merged into your AndroidManifest.xml) <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> BroadcastActivity <activity android:name="io.kickflip.sdk.activity.BroadcastActivity" android:screenOrientation="landscape"> </activity> MediaPlayerActivity (Optional) MediaPlayerActivity 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). <activity android:name="io.kickflip.sdk.activity.MediaPlayerActivity" android:screenOrientation="landscape" > </activity>
Provide your Kickflip keys and start BroadcastActivity when appropriate: Kickflip.setup(this, CLIENT_ID, CLIENT_SECRET); Kickflip.startBroadcastActivity(this, new BroadcastListener() { @Override public void onBroadcastStart() { } @Override public void onBroadcastLive(Stream stream) { Log.i(TAG, "BroadcastLive @ " + stream.getKickflipUrl()); } @Override public void onBroadcastStop() { } @Override public void onBroadcastError() { } });
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page