Skip to content

Android implement LobiRecSDK Native

ueda edited this page Oct 16, 2015 · 2 revisions

Android ネイティブ Lobi Rec SDK 導入手順書

アプリにLobi SDKを追加する手順

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になります。

組み込みの手順は以下の通りです。

  1. 最初に呼び出されるActivityでLobiRecNative.setup(Activity activity)を呼ぶ(※1)。
  2. 描画処理の設定のため、__GLスレッド__でLobiRec_initCapture(int width, int height)を呼ぶ(width, heightは描画領域の大きさ)。
  3. 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,
        ""
    )
}
Clone this wiki locally