Android implement LobiRecSDK Native
Lobi SDKをアプリに追加する手順は AndroidネイティブアプリへのLobi SDK組み込み手順 を参照してください。
※ 初期化(LobiCore.setupの呼び出し)はしていただく必要はありません。
その代わりにLobiRecNative.setupを呼んでいただく必要があります(組み込みの手順1)。
使用していただくライブラリはLobiRec/libs/(armeabi-v7a|x86|armeabi)/liblobirecnative.so
になります。Rec SDKはx86, armeabiの端末には対応していないので、x86, armeabi用のライブラリでは、後述する投稿された動画一覧を表示するメソッドのみ使えます(それ以外のメソッドを呼び出しても動作に影響はありません)。
liblobirecnative.so
のヘッダファイルはLobiRecNative.h
になります。
組み込みの手順は以下の通りです。
- 最初に呼び出されるActivityで
LobiRecNative.setup(Activity activity)
を呼ぶ(※1)。 - 描画処理の設定のため、__GLスレッド__で
LobiRec_initCapture(int width, int height)
を呼ぶ(width
,height
は描画領域の大きさ)。 - GLスレッドのフレーム描画の開始時と終了時に、以下の通りにメソッドを呼ぶ。
//フレーム描画メソッド
render() {
LobiRec_cameraPreRender(); //フレーム描画を開始する時点に呼ぶ
//
// フレーム描画処理
//
LobiRec_onEndOfFrame(); //フレーム描画が終了した時点に呼ぶ
}
※ 2.では、端末が録画機能に対応しているかを通信によって取得します。対応している場合は、通信後に後述のLobiRec_isSupported()
がtrueを返すようになります。
以下の手順4、5は、LobiRec_isSupported()
がtrueであることを確認した場合のみ行ってください。
4. 録画開始時にLobiRec_initOpenSLAudio(int sampleRate)
、LobiRec_startCapture()
を呼ぶ(※2)。
5. 録画終了時点にLobiRec_stopCapture()
を呼ぶ。
※1 NativeActivityを使用する場合、以下のようにNativeActivityを継承したActivityを実装していただく必要があります。
import com.kayac.lobi.sdk.rec.nativeinterface.LobiRecNative;
import android.app.NativeActivity;
import android.os.Bundle;
public class MainActivity extends NativeActivity {
static {
System.loadLibrary("lobirecnative");
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LobiRecNative.setup(this);
}
}
※2 LobiRec_initOpenSLAudio
呼び出し前に生成されたAudioPlayerによって再生された音声は録音されません。録音する音声を扱うAudioPlayerは、LobiRec_initOpenSLAudio
呼び出し後に生成していただく必要があります。
#### その他の設定
- 録画機能がサポートされている端末であるかを判定する。
bool LobiRec_isSupported();
- 録画中のマイクの入力可否を設定する。
void LobiRec_setMicEnable(bool enabled);
- マイクのボリュームを設定する。
volume
は1.0で100%(1.5では150%)。
void LobiRec_setMicVolume(double volume);
- ゲームのサウンドのボリュームを設定する。
volume
は1.0で100%。
void LobiRec_setGameSoundVolume(double volume);
- 録画した動画を投稿するアクティビティを開く。戻り値は、アクティビティを開いたかどうか。
bool LobiRec_openPostVideoActivity(
char* title,
char* postDescription,
long postScore,
char* postCategory,
char* postMetadata
);
- 投稿された動画リストを表示するアクティビティを開く。戻り値は、アクティビティを開いたかどうか。
bool LobiRec_openLobiPlayActivity(
char* userExid,
char* category,
bool letsplay,
char* metaJson
);
以下に呼び出し方の参考例を示します。
// 録画開始時に呼ぶメソッド
void startCapturing() {
if (!LobiRec_isSupported()) {
LOGW("録画機能はサポートされていません");
return;
}
LobiRec_setMicEnable(true);
LobiRec_setMicVolume(1.0);
LobiRec_setGameSoundVolume(0.5);
LobiRec_initOpenSLAudio(24000);
LobiRec_startCapture();
}
// 動画投稿画面を呼び出すメソッド
bool openPostVideActivity() {
return LobiRec_openPostVideoActivity(
"タイトル",
"説明",
0,
"カテゴリ",
""
);
}
// 投稿された動画一覧を閲覧するメソッド
bool LobiRec_openLobiPlayActivity() {
return LobiRec_openLobiPlayActivity(
"",
"カテゴリ",
false,
""
)
}