有沒有辦法將NSData
指定爲const char
。我知道NSString
可以使用指定NSData爲const char
const char *value = [myString UTF8String];
我嘗試使用
const char *value = [myData bytes];
也
NSString *dataString = [NSString alloc]initWithData:myData encoding: NSASCIIStringEncoding];
const char *value = [dataString UTF8String];
分配NSData
但沒有工作,被分配到const char
。 myData是包含音頻數據的NSData
。
編輯:
現有
resourcePath = [[NSBundle mainBundle] pathForResource:@"Busytone" ofType:@"wav"];
linphone_core_set_tone([LinphoneManager getLc], LinphoneToneBusy , [resourcePath UTF8String]);
我試圖替換成
NSData*data= configure.mailNotificationAudioFiles[@"BusyTone"];
NSString *str =[[NSString alloc]initWithData:data encoding:NSASCIIStringEncoding];
linphone_core_set_tone([LinphoneManager getLc], LinphoneToneBusy ,[str UTF8String]);
到數據傳遞
LINPHONE_PUBLIC void linphone_core_set_tone(LinphoneCore *lc, LinphoneToneID id, const char *audiofile);
如果是音頻數據解決的問題那麼它不是'const char',它是'const uint8_t'。你將這個const char *數據傳給了什麼? – trojanfoe
'const char * value = [myData bytes];'應該有效。有什麼問題? –
@trojanfoe我傳遞給具有const car參數播放音頻的方法。但是,如果音頻從NSBundle加載,並將該路徑分配爲帶有UTF8String的nsstring,它就可以工作。 – vishnuvarthan