2017-04-11 3 views
0

ありがとうございました!SwiftでLinphone SDKのパスを整形する際に問題が発生しました

私は、Mac OS上でスウィフトでLinphoneはSDKを使用して通話を録音しようとしている、とのトラブル関数にパスを渡すことが生じています:正しく動作

func linphone_call_params_set_record_file(_ cp: OpaquePointer!, _ path: UnsafePointer<Int8>!) 

は(SDKはCで書かれています私はSwiftとブリッジヘッダーを使用してアクセスしていますが)。 Linphone SDKは正常に動作し、完全なオーディオサポートを使用してプログラムで呼び出しを行い、受け取ることができます。 Iは、記録ファイルを保存したい

let pathtofile = "/Users/Alex/Safety/1.wav" 

:コールレコーダーを起動しようとする際に

は、Iのような、この機能をパス(pathtofile)を渡します。

func SafetyNetAVRecorderInitializer(pathtofile: String) -> Bool { 
    // Convert pathtofile to UnsafePointer<Int8>. 
    let cpathtofile = (pathtofile as NSString).utf8String 
    let path = UnsafeMutablePointer<Int8>(mutating: cpathtofile) 

    // Actually begin call recording. 
    if currentcall != nil { 
     let currentcallparameters = linphone_call_get_current_params(currentcall) 
     linphone_call_params_set_record_file (currentcallparameters, path) 
     linphone_call_start_recording(currentcall) 
     return true 
    } 
    return false 
} 

んが、実行時エラーがlinphone_call_params_set_record_file()に遭遇されていないが、私はlinphone_call_start_recording()を起動しようとすると、録音が​​開始されていない、とエラーが読み込み、コンソールに出力されます。

ortp、エラー - linphone_call_start_recording():出力ファイルが指定されていません。 linphone_call_params_set_record_file()を使用してください。

linphone_call_params_set_record_file()に有効なパスを正しく渡すにはどうすればよいですか?私はUnsafePointer<Int8>の代わりに無地のスウィフトStringを直接渡してみました。パスがCでどのようにフォーマットされているのか誤解していますか?参考のため

、SDKメソッドのソースは次のとおりです。

void linphone_call_params_set_record_file(LinphoneCallParams *cp, const char *path){ 
if (cp->record_file){ 
    ms_free(cp->record_file); 
    cp->record_file=NULL; 
} 
if (path) cp->record_file=ms_strdup(path); 
} 

おかげで再び!

答えて

0

これを試してみてください:動作しませんでした

let cpathtofile = (pathtofile as NSString).utf8String! // Unwraps! 
... 
inphone_call_params_set_record_file(currentcallparameters, cpathtofile) 
+0

は、unfortunately--はしかし、あなたの助けをありがとう! – kmypwn

+0

@kmypwnあなたは本当に[パススルーパス](http://stackoverflow.com/a/41308592/819340) 'pathtofile:String'も本当にできるはずです。あなたのバグは他の場所にあるかもしれません... :-( –

+0

Linphone SDKについてのより深い知識を持っている人が、洞察を得られることを願っています。 – kmypwn

関連する問題