AVFoundation編程指南12-AVAssetExportSession

寫(xiě)在前面

喜歡AVFoundation資料的同學(xué)可以關(guān)注我的專題:《AVFoundation》專輯
也可以關(guān)注我的簡(jiǎn)書(shū)賬號(hào)

正文

AVAssetExportSession可以以指定導(dǎo)出預(yù)設(shè)所描述的形式從現(xiàn)有AVAsset的內(nèi)容創(chuàng)建新的定時(shí)媒體資源逗鸣。

數(shù)據(jù)結(jié)構(gòu)

AVAssetExportSession數(shù)據(jù)結(jié)構(gòu)如下:

AVAssetExportSession數(shù)據(jù)結(jié)構(gòu)

Export Preset Names

下面這些export選項(xiàng)可用于生成視頻大小適合設(shè)備的視頻文件洋侨。
export不會(huì)從較小的尺寸縮放較大尺寸的視頻相速。視頻將使用H.264壓縮和音頻將使用AAC進(jìn)行壓縮香伴。

AVF_EXPORT NSString *const AVAssetExportPresetLowQuality         NS_AVAILABLE(10_11, 4_0);
AVF_EXPORT NSString *const AVAssetExportPresetMediumQuality      NS_AVAILABLE(10_11, 4_0);
AVF_EXPORT NSString *const AVAssetExportPresetHighestQuality     NS_AVAILABLE(10_11, 4_0);

下面這個(gè)export(導(dǎo)出)方式視頻方面使用HEVC壓縮和音頻方面將使用AAC進(jìn)行壓縮晒来。有些設(shè)備可能無(wú)法支持某些尺寸。

AVF_EXPORT NSString *const AVAssetExportPresetHEVCHighestQuality NS_AVAILABLE(10_13, 11_0);

下面的導(dǎo)出方式視頻采用HEVC壓縮,音頻采用AAC壓縮幕垦。有些設(shè)備可能無(wú)法支持某些尺寸。

AVF_EXPORT NSString *const AVAssetExportPreset640x480           NS_AVAILABLE(10_7, 4_0);
AVF_EXPORT NSString *const AVAssetExportPreset960x540           NS_AVAILABLE(10_7, 4_0);
AVF_EXPORT NSString *const AVAssetExportPreset1280x720          NS_AVAILABLE(10_7, 4_0);
AVF_EXPORT NSString *const AVAssetExportPreset1920x1080         NS_AVAILABLE(10_7, 5_0);
AVF_EXPORT NSString *const AVAssetExportPreset3840x2160         NS_AVAILABLE(10_10, 9_0);

下面的導(dǎo)出方式視頻采用HEVC壓縮奕翔,音頻采用AAC壓縮裕寨。有些設(shè)備可能無(wú)法支持某些尺寸。

AVF_EXPORT NSString *const AVAssetExportPresetHEVC1920x1080     NS_AVAILABLE(10_13, 11_0);
AVF_EXPORT NSString *const AVAssetExportPresetHEVC3840x2160     NS_AVAILABLE(10_13, 11_0);

下面的導(dǎo)出選項(xiàng)將生成僅具有音頻的.m4a文件派继,其中包含適當(dāng)?shù)?code>iTunes無(wú)間隙播放數(shù)據(jù)

AVF_EXPORT NSString *const AVAssetExportPresetAppleM4A          NS_AVAILABLE(10_7, 4_0);

下面的導(dǎo)出選項(xiàng)將使所有軌道的媒體完全按照存儲(chǔ)在源資源中的方式傳遞到output宾袜,除了通道無(wú)法通過(guò)的軌道,通常是由于指定的outputFileType指示的容器格式的約束驾窟。
此選項(xiàng)不包含在-allExportPresets-exportPresetsCompatibleWithAsset返回的數(shù)組中庆猫。

AVF_EXPORT NSString *const AVAssetExportPresetPassthrough       NS_AVAILABLE(10_7, 4_0);

如果當(dāng)前的操作系統(tǒng)是MAC OS操作系統(tǒng)并且不是嵌入式操作系統(tǒng)也不是iOS操作系統(tǒng)的話,下面的導(dǎo)出方式也可以使用

下面這些導(dǎo)出選項(xiàng)用于生成可在指定Apple設(shè)備上播放的文件月培。
這些預(yù)設(shè)僅適用于桌面導(dǎo)出。
這些文件應(yīng)具有.m4v擴(kuò)展名(或m4a用于僅包含音頻源的導(dǎo)出)恩急。

AVF_EXPORT NSString *const AVAssetExportPresetAppleM4VCellular  NS_AVAILABLE(10_7, NA);
AVF_EXPORT NSString *const AVAssetExportPresetAppleM4ViPod      NS_AVAILABLE(10_7, NA);
AVF_EXPORT NSString *const AVAssetExportPresetAppleM4V480pSD    NS_AVAILABLE(10_7, NA);
AVF_EXPORT NSString *const AVAssetExportPresetAppleM4VAppleTV   NS_AVAILABLE(10_7, NA);
AVF_EXPORT NSString *const AVAssetExportPresetAppleM4VWiFi      NS_AVAILABLE(10_7, NA);
AVF_EXPORT NSString *const AVAssetExportPresetAppleM4V720pHD    NS_AVAILABLE(10_7, NA);
AVF_EXPORT NSString *const AVAssetExportPresetAppleM4V1080pHD   NS_AVAILABLE(10_8, NA);

下面這個(gè)導(dǎo)出選項(xiàng)將生成帶有Apple ProRes 422視頻和LPCM音頻的QuickTime視頻。

AVF_EXPORT NSString *const AVAssetExportPresetAppleProRes422LPCM    NS_AVAILABLE(10_7, NA);

AVAssetExportSessionStatus

    AVAssetExportSessionStatusUnknown,
    AVAssetExportSessionStatusWaiting,
    AVAssetExportSessionStatusExporting,
    AVAssetExportSessionStatusCompleted,
    AVAssetExportSessionStatusFailed,
    AVAssetExportSessionStatusCancelled

AVAssetExportSession

+ (nullable instancetype)exportSessionWithAsset:(AVAsset *)asset presetName:(NSString *)presetName NS_AVAILABLE(10_7, 4_1);
函數(shù)名 exportSessionWithAsset:presetName:
解釋 返回指定源資源和預(yù)設(shè)的AVAssetExportSession實(shí)例衷恭。
參數(shù) asset:
用于導(dǎo)出的AVAsset對(duì)象。

presetName:
NSString随珠,指定導(dǎo)出的預(yù)設(shè)模板的名稱灭袁。
返回值 AVAssetExportSession的一個(gè)實(shí)例。
備注 如果指定的asset屬于AVAsset茸歧,AVMutableCompositionAVMutableMovie的可變子類倦炒,則如果在操作開(kāi)始后改變asset举娩,則任何與導(dǎo)出相關(guān)的操作的結(jié)果都是未定義的。這些操作包括但不限于:1)測(cè)試導(dǎo)出預(yù)設(shè)與asset的兼容性铜涉,2)計(jì)算輸出文件的最大持續(xù)時(shí)間或估計(jì)長(zhǎng)度智玻,以及3)導(dǎo)出操作本身。
- (nullable instancetype)initWithAsset:(AVAsset *)asset presetName:(NSString *)presetName NS_DESIGNATED_INITIALIZER;
函數(shù)名 initWithAsset:presetName:
解釋 使用指定的預(yù)設(shè)初始化AVAssetExportSession芙代,并將源設(shè)置為asset的內(nèi)容吊奢。
參數(shù) asset:
用于導(dǎo)出的AVAsset對(duì)象。

presetName:
NSString纹烹,指定導(dǎo)出的預(yù)設(shè)模板的名稱页滚。
返回值 返回初始化的AVAssetExportSession
備注 如果指定的asset屬于AVAsset铺呵,AVMutableCompositionAVMutableMovie的可變子類裹驰,則如果在操作開(kāi)始后改變asset,則任何與導(dǎo)出相關(guān)的操作的結(jié)果都是未定義的片挂。這些操作包括但不限于:1)測(cè)試導(dǎo)出預(yù)設(shè)與asset的兼容性幻林,2)計(jì)算輸出文件的最大持續(xù)時(shí)間或估計(jì)長(zhǎng)度,以及3)導(dǎo)出操作本身音念。
@property (nonatomic, readonly) NSString *presetName;

除非另有說(shuō)明沪饺,否則A??VAssetExortSession屬性是可以進(jìn)行鍵值觀察的。

指示初始化AVExportSession的預(yù)設(shè)名稱闷愤。

@property (nonatomic, retain, readonly) AVAsset *asset NS_AVAILABLE(10_8, 5_0);

指示初始化AVExportSessionAVAsset實(shí)例整葡。

@property (nonatomic, copy, nullable) AVFileType outputFileType;

指示會(huì)話要寫(xiě)入的文件類型。

在調(diào)用-exportAsynchronouslyWithCompletionHandler:;之前讥脐,必須設(shè)置此屬性的值遭居。否則-exportAsynchronouslyWithCompletionHandler:將引發(fā)NSInternalInconsistencyException

將此屬性的值設(shè)置為不在會(huì)話支持的文件類型中的文件類型將導(dǎo)致NSInvalidArgumentException攘烛。詳情請(qǐng)參閱supportedFileTypes魏滚。

@property (nonatomic, copy, nullable) NSURL *outputURL;

指示導(dǎo)出會(huì)話輸出的URL。你可以使用UTTypeCopyPreferredTagWithClass(outputFileType坟漱,kUTTagClassFilenameExtension)為你指定的outputFileType獲取適當(dāng)?shù)穆窂綌U(kuò)展鼠次。有關(guān)UTTypeCopyPreferredTagWithClasskUTTagClassFilenameExtension的更多信息,請(qǐng)參閱<MobileCoreServices / UTType.h>,在Mac OS X上可以查看<LaunchServices / UTType.h>腥寇。

@property (nonatomic) BOOL shouldOptimizeForNetworkUse;

表示應(yīng)該優(yōu)化輸出文件以供網(wǎng)絡(luò)使用成翩,例如一個(gè)QuickTime電影文件應(yīng)該支持"fast start"

@property (nonatomic, readonly) AVAssetExportSessionStatus status;

表示導(dǎo)出會(huì)話的狀態(tài)赦役。

@property (nonatomic, readonly, nullable) NSError *error;

描述導(dǎo)出狀態(tài)為AVAssetExportSession狀態(tài)失敗時(shí)發(fā)生的錯(cuò)誤麻敌。

- (void)exportAsynchronouslyWithCompletionHandler:(void (^)(void))handler;
函數(shù)名 exportAsynchronouslyWithCompletionHandler:
解釋 啟動(dòng)導(dǎo)出會(huì)話的異步執(zhí)行。
參數(shù) handler:
如果導(dǎo)出的內(nèi)部準(zhǔn)備失敗掂摔,則將同步調(diào)用該處理程序术羔。在-exportAsynchronouslyWithCompletionHandler:return之后,也可以異步調(diào)用處理程序乙漓,
在以下情況中:

1)如果在導(dǎo)出過(guò)程中發(fā)生故障级历,包括加載,重新編碼或?qū)⒚襟w數(shù)據(jù)寫(xiě)入輸出失敗叭披。

2)如果調(diào)用-cancelExport寥殖。

3)如果導(dǎo)出會(huì)話成功,則將其輸出完全寫(xiě)入outputURL涩蜘。

在每種情況下嚼贡,AVAssetExportSession.status都將發(fā)出asset讀取器的終端狀態(tài)信號(hào),如果發(fā)生故障同诫,則表示NSError

描述失敗可以從error屬性中獲取粤策。
備注 啟動(dòng)異步導(dǎo)出操作并立即返回。
@property (nonatomic, readonly) float progress;

01.0的比例指定導(dǎo)出的進(jìn)度掐场。值為0表示導(dǎo)出尚未開(kāi)始贩猎,值為1.0表示導(dǎo)出已完成萍膛。此屬性不是可以進(jìn)行鍵值觀察的。

- (void)cancelExport;
函數(shù)名 cancelExport
解釋 取消導(dǎo)出會(huì)話的執(zhí)行蝗罗。
備注 取消可以在導(dǎo)出運(yùn)行時(shí)被調(diào)用。

AVAssetExportSessionPresets

+ (NSArray<NSString *> *)allExportPresets;
函數(shù)名 allExportPresets
解釋 返回所有可用的導(dǎo)出預(yù)設(shè)名稱沼琉。
返回值 NSArray,包含每個(gè)可用預(yù)設(shè)名稱的NSString打瘪。
備注 返回NSStrings數(shù)組,其中包含所有可用預(yù)設(shè)的名稱闺骚。請(qǐng)注意,并非所有預(yù)設(shè)都是兼容所有AVAssets虫碉。
+ (NSArray<NSString *> *)exportPresetsCompatibleWithAsset:(AVAsset *)asset;
函數(shù)名 exportPresetsCompatibleWithAsset:
解釋 僅返回與給定AVAsset對(duì)象兼容的標(biāo)識(shí)符。
參數(shù) asset:
用于導(dǎo)出的AVAsset對(duì)象敦捧。
返回值 包含NSString值的NSArray碰镜,用于兼容導(dǎo)出類型的標(biāo)識(shí)符。該數(shù)組是可用作參數(shù)的有效標(biāo)識(shí)符的完整列表initWithAsset:presetName:具有指定的asset洋措。
備注 并非所有導(dǎo)出預(yù)設(shè)都與所有AVAsset兼容。例如菠发,僅視頻asset與僅音頻預(yù)設(shè)不兼容。此方法僅返回與給定asset兼容的預(yù)設(shè)的標(biāo)識(shí)符滓鸠。客戶端應(yīng)傳入準(zhǔn)備導(dǎo)出的AVAsset踱稍。為了確保使用給定預(yù)設(shè)的導(dǎo)出操作的設(shè)置和運(yùn)行成功,沒(méi)有重大變化(例如添加或刪除track)應(yīng)在檢索兼容標(biāo)識(shí)符和執(zhí)行導(dǎo)出操作之間對(duì)asset進(jìn)行操作珠月。此方法將訪問(wèn)AVAssettracks屬性以構(gòu)建返回的NSArray。為了避免阻塞調(diào)用線程啤挎,應(yīng)使用AVAsynchro加載tracks屬性
+ (void)determineCompatibilityOfExportPreset:(NSString *)presetName withAsset:(AVAsset *)asset outputFileType:(nullable AVFileType)outputFileType completionHandler:(void (^)(BOOL compatible))handler NS_AVAILABLE(10_9, 6_0);
函數(shù)名 determineCompatibilityOfExportPreset:withAsset:outputFileType:completionHandler:
解釋 對(duì)導(dǎo)出預(yù)設(shè)卵凑,AVAsset和輸出文件類型的兼容性執(zhí)行檢查。如果是兼容的勺卢,則使用YES調(diào)用完成處理程序參數(shù)兼容;否則就是NO
參數(shù) presetName:
NSString黑忱,指定導(dǎo)出的預(yù)設(shè)模板的名稱勒魔。

asset:
用于導(dǎo)出的AVAsset對(duì)象酱塔。

outputFileType:
指示要檢查的文件類型的AVFileType;或者nil,查詢是否存在任何兼容類型唐全。

completionHandler:
使用兼容性結(jié)果調(diào)用的block

AVAssetExportSessionFileTypes

@property (nonatomic, readonly) NSArray<AVFileType> *supportedFileTypes;

根據(jù)初始化目標(biāo)的預(yù)設(shè)邮利,指示目標(biāo)可以寫(xiě)入的文件類型垃帅。
不執(zhí)行AVAsset檢查以確定其內(nèi)容是否與支持的文件類型兼容。如果你需要在啟動(dòng)導(dǎo)出之前做出該決定贸诚,請(qǐng)使用- (void)determineCompatibleFileTypesWithCompletionHandler:(void(^)(NSArray * compatibleFileTypes))handler :.

- (void)determineCompatibleFileTypesWithCompletionHandler:(void (^)(NSArray<AVFileType> *compatibleFileTypes))handler NS_AVAILABLE(10_9, 6_0);
函數(shù)名 determineCompatibleFileTypesWithCompletionHandler:
解釋 對(duì)初始化對(duì)象的AVAssetPreset執(zhí)行檢查,以確定ExportSession可以寫(xiě)入的文件類型列表酱固。
參數(shù) handler:
當(dāng)檢查完成時(shí),使用一組文件類型調(diào)用ExportSession可以寫(xiě)入运悲。請(qǐng)注意,這可能計(jì)為零希停。
備注 此方法與supportedFileTypes屬性的不同之處在于,它執(zhí)行AVAsset的檢查宠能,以確定其與每個(gè)會(huì)話支持的文件類型的兼容性。

AVAssetExportSessionDurationAndLength

@property (nonatomic) CMTimeRange timeRange;

指定要從源導(dǎo)出的時(shí)間范圍棍潘。導(dǎo)出會(huì)話的默認(rèn)timeRangekCMTimeZero..kCMTimePositiveInfinity崖媚,表示將導(dǎo)出asset的完整持續(xù)時(shí)間恤浪。

@property (nonatomic, readonly) CMTime maxDuration API_AVAILABLE(macos(10.14), ios(4.0), tvos(9.0)) __WATCHOS_PROHIBITED;

根據(jù)源asset,導(dǎo)出預(yù)設(shè)和fileLengthLimit的當(dāng)前值水由,提供對(duì)可能導(dǎo)出的介質(zhì)的最大持續(xù)時(shí)間的估計(jì)。當(dāng)export達(dá)到最大持續(xù)時(shí)間時(shí),export不會(huì)停止;將timeRange屬性設(shè)置為僅導(dǎo)出特定時(shí)間范圍呵恢。

@property (nonatomic) long long fileLengthLimit API_AVAILABLE(macos(10.14), ios(4.0), tvos(9.0)) __WATCHOS_PROHIBITED;

表示導(dǎo)出文件的估計(jì)字節(jié)大小媚创。導(dǎo)出預(yù)設(shè)為AVAssetExportPresetPassthroughAVAssetExportPresetAppleProRes422LPCM時(shí)返回零。如果尚未設(shè)置timeRange屬性的數(shù)值(即钞钙,not invalidindefiniteinfinite)芒炼,則此屬性也將返回零。

指示會(huì)話輸出不應(yīng)超過(guò)的文件長(zhǎng)度本刽。根據(jù)源asset的內(nèi)容,輸出可能略微超過(guò)文件長(zhǎng)度限制子寓。如果在使用輸出之前需要遵守嚴(yán)格的限制,則應(yīng)測(cè)試輸出文件的長(zhǎng)度别瞭。另請(qǐng)參見(jiàn)maxDuration和timeRange

AVAssetExportSessionMetadata

@property (nonatomic, copy, nullable) NSArray<AVMetadataItem *> *metadata;

指定要由導(dǎo)出會(huì)話寫(xiě)入輸出文件的AVMetadataItemsNSArray蝙寨。如果此鍵的值為nil,則導(dǎo)出asset中的任何現(xiàn)有元數(shù)據(jù)將盡可能準(zhǔn)確地轉(zhuǎn)換為輸出文件的相應(yīng)元數(shù)據(jù)鍵空間并寫(xiě)入輸出听系。

@property (nonatomic, retain, nullable) AVMetadataItemFilter *metadataItemFilter NS_AVAILABLE(10_9, 7_0);

指定在導(dǎo)出期間使用的過(guò)濾器對(duì)象,以確定應(yīng)從源asset傳輸哪些元數(shù)據(jù)項(xiàng)靠胜。如果此鍵的值為nil,則不應(yīng)用過(guò)濾器浪漠。這是默認(rèn)值霎褐。過(guò)濾器不會(huì)應(yīng)用于通過(guò)元數(shù)據(jù)屬性設(shè)置的元數(shù)據(jù)。要在元數(shù)據(jù)屬性上設(shè)置元數(shù)據(jù)之前將過(guò)濾器應(yīng)用于元數(shù)據(jù)冻璃,詳情請(qǐng)參閱AVMetadataItemAVMetadataItemArrayFiltering類別中的方法损合。

AVAssetExportSessionMediaProcessing

@property (nonatomic, copy) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm NS_AVAILABLE(10_9, 7_0);

指示用于管理縮放音頻編輯的音頻音調(diào)的處理算法娘纷。各種時(shí)間間距算法的常數(shù),例如赖晶, AVAudioTimePitchAlgorithmSpectral,在AVAudioProcessingSettings.h中定義嬉探。如果將此屬性設(shè)置為該文件中定義的常量以外的值,則將引發(fā)NSInvalidArgumentException涩堤。默認(rèn)值為AVAudioTimePitchAlgorithmSpectral

@property (nonatomic, copy, nullable) AVAudioMix *audioMix;

指示是否啟用非默認(rèn)音頻混合以進(jìn)行導(dǎo)出胎围,并提供音頻混合的參數(shù)。導(dǎo)出預(yù)設(shè)為AVAssetExportPresetPassthrough時(shí)忽略汽纤。

@property (nonatomic, copy, nullable) AVVideoComposition *videoComposition;

指示是否啟用視頻合成以進(jìn)行導(dǎo)出,并提供視頻合成的說(shuō)明蕴坪。導(dǎo)出預(yù)設(shè)為AVAssetExportPresetPassthrough時(shí)忽略。

@property (nonatomic, readonly, nullable) id <AVVideoCompositing> customVideoCompositor NS_AVAILABLE(10_9, 7_0);

表示使用的自定義視頻合成器實(shí)例(如果有的話)背传。

AVAssetExportSessionMultipass

@property (nonatomic) BOOL canPerformMultiplePassesOverSourceMediaData NS_AVAILABLE(10_10, 8_0);
函數(shù)名 canPerformMultiplePassesOverSourceMediaData
解釋 確定導(dǎo)出會(huì)話是否可以對(duì)源媒體執(zhí)行多次傳遞以獲得更好的結(jié)果。
備注 當(dāng)此屬性的值為YES時(shí)径玖,導(dǎo)出會(huì)話可以以更長(zhǎng)的導(dǎo)出時(shí)間為代價(jià)生成更高質(zhì)量的結(jié)果。將此屬性設(shè)置為YES還可能需要導(dǎo)出會(huì)話在導(dǎo)出期間將臨時(shí)數(shù)據(jù)寫(xiě)入磁盤(pán)梳星。要控制臨時(shí)數(shù)據(jù)的位置滚朵,請(qǐng)使用屬性directoryForTemporaryFiles

默認(rèn)值為NO辕近。并非所有導(dǎo)出會(huì)話配置都可以通過(guò)源媒體執(zhí)行多次傳遞而受益。在這些情況下亏推,將此屬性設(shè)置為YES無(wú)效。

導(dǎo)出開(kāi)始后無(wú)法設(shè)置此屬性吞杭。
@property (nonatomic, copy, nullable) NSURL *directoryForTemporaryFiles NS_AVAILABLE(10_10, 8_0);
函數(shù)名 directoryForTemporaryFiles
解釋 指定適合包含導(dǎo)出過(guò)程中生成的臨時(shí)文件的目錄
備注 當(dāng)以某種方式配置時(shí),AVAssetExportSession可能需要編寫(xiě)臨時(shí)文件芽狗,例如當(dāng)canPerformMultiplePassesOverSourceMediaData設(shè)置為YES時(shí)。此屬性可用于控制文件系統(tǒng)中創(chuàng)建臨時(shí)文件的位置童擎。導(dǎo)出完成,取消或失敗時(shí)顾复,將刪除所有臨時(shí)文件。

當(dāng)此屬性的值為nil時(shí)芯砸,導(dǎo)出會(huì)話將在編寫(xiě)臨時(shí)文件時(shí)選擇合適的位置。默認(rèn)值為nil双揪。

導(dǎo)出開(kāi)始后無(wú)法設(shè)置此屬性。如果URL指向的位置不是目錄渔期,不存在,不在本地文件系統(tǒng)上疯趟,或者無(wú)法在此目錄中創(chuàng)建文件(例如,由于權(quán)限不足或沙盒限制)几莽,導(dǎo)出將失敗)站欺。
上一章 目錄 下一章
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纤垂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子峭沦,更是在濱河造成了極大的恐慌,老刑警劉巖吼鱼,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绰咽,死亡現(xiàn)場(chǎng)離奇詭異地粪,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蟆技,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)质礼,“玉大人,你說(shuō)我怎么就攤上這事眶蕉。” “怎么了妻坝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)刽宪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)圣拄,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任庇谆,我火速辦了婚禮,結(jié)果婚禮上饭耳,老公的妹妹穿的比我還像新娘。我一直安慰自己寞肖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布觅赊。 她就那樣靜靜地躺著,像睡著了一般吮螺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸠补,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音闹丐,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛衫仑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播文狱,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瞄崇!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起苏研,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎筹燕,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體撒踪,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年制妄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泵三。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡切黔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纬霞,到底是詐尸還是另有隱情,我是刑警寧澤诗芜,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布埃疫,位于F島的核電站孩哑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏横蜒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一仅炊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抚垄,春花似錦、人聲如沸呆馁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至瓷叫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摹菠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工次氨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留摘投,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓犀呼,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親外臂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容