資源簡介
此項目是最近領導安排的預研項目,是破解AirPlay私有協議,實現了音視頻推送功能,并兼容了iOS9/10以上的系統, 項目可能根據不同的android系統略有修改,具體看代碼。
代碼片段和文件信息
/*
**?AlacDecodeUtils.java
**
**?Copyright?(c)?2011?Peter?McQuillan
**
**?All?Rights?Reserved.
**???????????????????????
**?Distributed?under?the?BSD?Software?License?(see?license.txt)??
**
*/
package?com.beatofthedrum.alacdecoder;
public?class?AlacDecodeUtils
{
public?static?void?alac_set_info(AlacFile?alac?int[]?inputbuffer)
{
??int?ptrIndex??=?0;
??ptrIndex?+=?4;?//?size
??ptrIndex?+=?4;?//?frma
??ptrIndex?+=?4;?//?alac
??ptrIndex?+=?4;?//?size
??ptrIndex?+=?4;?//?alac
??ptrIndex?+=?4;?//?0??
??alac.setinfo_max_samples_per_frame?=?((inputbuffer[ptrIndex]?<24)?+?(inputbuffer[ptrIndex+1]?<16)?+?(inputbuffer[ptrIndex+2]?<8)?+?inputbuffer[ptrIndex+3]);?//?buffer?size?/?2??
??ptrIndex?+=?4;
??alac.setinfo_7a?=?inputbuffer[ptrIndex];
??ptrIndex?+=?1;
??alac.setinfo_sample_size?=?inputbuffer[ptrIndex];
??ptrIndex?+=?1;
??alac.setinfo_rice_historymult?=?(inputbuffer[ptrIndex]?&?0xff);
??ptrIndex?+=?1;
??alac.setinfo_rice_initialhistory?=??(inputbuffer[ptrIndex]?&?0xff);
??ptrIndex?+=?1;
??alac.setinfo_rice_kmodifier?=?(inputbuffer[ptrIndex]?&?0xff);
??ptrIndex?+=?1;
??alac.setinfo_7f?=?inputbuffer[ptrIndex];
??ptrIndex?+=?1;
??alac.setinfo_80?=?(inputbuffer[ptrIndex]?<8)?+?inputbuffer[ptrIndex+1];
??ptrIndex?+=?2;
??alac.setinfo_82?=?((inputbuffer[ptrIndex]?<24)?+?(inputbuffer[ptrIndex+1]?<16)?+?(inputbuffer[ptrIndex+2]?<8)?+?inputbuffer[ptrIndex+3]);
??ptrIndex?+=?4;
??alac.setinfo_86?=?((inputbuffer[ptrIndex]?<24)?+?(inputbuffer[ptrIndex+1]?<16)?+?(inputbuffer[ptrIndex+2]?<8)?+?inputbuffer[ptrIndex+3]);
??ptrIndex?+=?4;
??alac.setinfo_8a_rate?=?((inputbuffer[ptrIndex]?<24)?+?(inputbuffer[ptrIndex+1]?<16)?+?(inputbuffer[ptrIndex+2]?<8)?+?inputbuffer[ptrIndex+3]);
??ptrIndex?+=?4;
}
/*?stream?reading?*/
/*?supports?reading?1?to?16?bits?in?big?endian?format?*/
static?int?readbits_16(AlacFile?alac?int?bits?)?
{
int?result??=?0;
int?new_accumulator?=?0;
int?part1?=?0;
int?part2?=?0;
int?part3?=0;
part1?=?(alac.input_buffer[alac.ibIdx]?&?0xff);
part2?=?(alac.input_buffer[alac.ibIdx?+?1]?&?0xff);
part3?=?(alac.input_buffer[alac.ibIdx?+?2]?&?0xff);
result?=?((part1?<16)?|?(part2?<8)?|?part3);
/*?shift?left?by?the?number?of?bits?we‘ve?already?read
?
*?so?that?the?top?‘n‘?bits?of?the?24?bits?we?read?will
?*?be?the?return?bits?*/
result?=?result?<
result?=?result?&?0x00ffffff;
/*?and?then?only?want?the?top?‘n‘?bits?from?that?where
?*?n?is?‘bits‘?*/
result?=?result?>>?(24?-?bits);
new_accumulator?=?(alac.input_buffer_bitaccumulator?+?bits);
/*?increase?the?buffer?pointer?if?we‘ve?read?over?n?bytes.?*/
alac.ibIdx?+=?(new_accumulator?>>?3);
/*?and?the?remainder?goes?back?into?the?bit?accumulator?*/
alac.input_buffer_bitaccumulator?=?(new_accumulator?&?7);
return?result;
}
/*?supports?reading?1?to?32?bits?in?big?endian?format?*/
static?int?readbits(AlacFile?alac?int?bits?)?
{
int?res
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-08-02?18:18??Airplay_Main\
?????目錄???????????0??2018-07-08?17:35??Airplay_Main\.gradle\
?????目錄???????????0??2019-03-11?10:24??Airplay_Main\.idea\
?????目錄???????????0??2018-07-30?14:03??Airplay_Main\.idea\caches\
?????文件?????????538??2018-07-30?14:03??Airplay_Main\.idea\caches\build_file_checksums.ser
?????目錄???????????0??2018-07-30?14:01??Airplay_Main\.idea\codest
?????文件????????1803??2018-07-30?14:01??Airplay_Main\.idea\codest
?????文件?????????159??2018-07-30?14:00??Airplay_Main\.idea\encodings.xm
?????文件?????????626??2018-07-30?14:03??Airplay_Main\.idea\gradle.xm
?????目錄???????????0??2018-07-30?14:05??Airplay_Main\.idea\libraries\
?????文件?????????676??2018-07-30?14:05??Airplay_Main\.idea\libraries\Gradle__com_android_support_support_annotations_20_0_0_jar.xm
?????文件?????????944??2018-07-30?14:05??Airplay_Main\.idea\libraries\Gradle__com_android_support_support_v4_20_0_0.xm
?????文件?????????335??2018-07-30?14:05??Airplay_Main\.idea\libraries\Gradle____local_aars___D__projectAs_AndroidAirPlayReceiver_master_Airplay_Main_app_libs_ba
?????文件?????????353??2018-07-30?14:05??Airplay_Main\.idea\libraries\Gradle____local_aars___D__projectAs_AndroidAirPlayReceiver_master_Airplay_Main_app_libs_bcprov_ext_jdk16_1_46_jar_unspecified_jar.xm
?????文件?????????333??2018-07-30?14:05??Airplay_Main\.idea\libraries\Gradle____local_aars___D__projectAs_AndroidAirPlayReceiver_master_Airplay_Main_app_libs_jmdns_3_4_1_jar_unspecified_jar.xm
?????文件?????????345??2018-07-30?14:05??Airplay_Main\.idea\libraries\Gradle____local_aars___D__projectAs_AndroidAirPlayReceiver_master_Airplay_Main_app_libs_netty_3_2_4_Final_jar_unspecified_jar.xm
?????文件?????????315??2018-07-30?14:05??Airplay_Main\.idea\libraries\Gradle____local_aars___D__projectAs_AndroidAirPlayReceiver_master_Airplay_Main_app_libs_rt_jar_unspecified_jar.xm
?????文件????????1722??2018-08-02?18:18??Airplay_Main\.idea\misc.xm
?????文件?????????361??2018-07-30?14:05??Airplay_Main\.idea\modules.xm
?????文件?????????564??2018-07-30?14:01??Airplay_Main\.idea\runConfigurations.xm
?????文件??????231692??2019-03-11?10:24??Airplay_Main\.idea\workspace.xm
?????文件?????????889??2018-08-02?18:18??Airplay_Main\Airplay_Main.iml
?????目錄???????????0??2018-07-30?14:16??Airplay_Main\app\
?????文件????????9951??2018-07-30?14:16??Airplay_Main\app\app.iml
?????目錄???????????0??2018-07-30?14:11??Airplay_Main\app\build\
?????文件?????????688??2018-07-08?17:35??Airplay_Main\app\build.gradle
?????目錄???????????0??2018-07-08?17:35??Airplay_Main\app\libs\
?????文件???????17008??2018-07-08?17:35??Airplay_Main\app\libs\ba
?????文件?????1887089??2018-07-08?17:35??Airplay_Main\app\libs\bcprov-ext-jdk16-1.46.jar
?????文件??????208912??2018-07-08?17:35??Airplay_Main\app\libs\jmdns-3.4.1.jar
?????文件??????790250??2018-07-08?17:35??Airplay_Main\app\libs\netty-3.2.4.Final.jar
............此處省略117個文件信息
評論
共有 條評論