2017-04-11 7 views
0

미리 도움을 청하십시오!Swift에서 Linphone SDK의 경로를 포맷하는 데 문제가 발생했습니다.

내가 맥 OS에 스위프트의 Linphone SDK를 사용하여 기록 통화를 시도하고, 그 함수로 경로를 통과 문제 데 : 제대로 작동

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

을 (SDK는 C로 작성 , 비록 Swift와 브리징 헤더을 사용하여 액세스하고 있지만). Linphone SDK가 제대로 작동하고, 전 음성 지원을 통해 프로그래밍 방식으로 전화를 걸고받을 수 있습니다. 내가 녹음 파일을 저장하고 싶은

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

: 전화 레코더의 호출에

, 나는 같은,이 기능을 경로 (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

는, 아쉽게도 비록 당신의 도움을 주셔서 감사합니다! – kmypwn

+0

@kmypwn 당신은 정말로 [직접적으로] (http://stackoverflow.com/a/41308592/819340)'pathtofile : String'을 할 수 있어야합니다. 어쩌면 당신의 버그는 어딘가에 있습니다 : ...--( –

+0

Linphone SDK에 대한 더 깊은 지식을 가진 누군가가 통찰력을 제공 할 수 있기를 바랍니다. – kmypwn