RDVECore來自銳動的無UI,高度抽象化API的視頻編輯SDK--IOS版

1編寫目的

預期讀者:

有視頻編輯開發(fā)經(jīng)驗或者無經(jīng)驗的访娶,打算或者正在使用“銳動IOS版RDVECore”的相關工程師。

iOS軟件工程師觉阅。

產(chǎn)品經(jīng)理崖疤。

QA

2名詞解釋

分辨率:用于計算機視頻處理的圖像,以水平和垂直方向上所能顯示的像素數(shù)來表示分辨率留拾。常見視頻分辨率的有1080P即1920x1080戳晌,720P即1080x720鲫尊,640x480等痴柔。

幀率:每秒的幀數(shù)(fps)或者說幀率表示圖形處理器處理場時每秒鐘能夠更新的次數(shù)。

碼率: 數(shù)據(jù)傳輸時單位時間傳送的數(shù)據(jù)位數(shù),一般我們用的單位是kbps即千位每秒疫向。

寬高比:視頻分辨率的寬高比咳蔚,常見的有16:9豪嚎,4:3,1:1谈火。銳動視頻編輯SDK對各寬高比的視頻都支持編輯侈询,導出的默認分辨率是640x360,寬高比是16:9糯耍。

素材:來自系統(tǒng)相機扔字,其他app,電腦温技,網(wǎng)絡的照片革为,音樂,視頻等舵鳞。

虛擬視頻(VirtualVideo): 管理編輯中的包含場景震檩、字幕水印等,用于預覽或導出時的容器或管理者蜓堕。

場景(Scene):包含編輯中的媒體對象抛虏。

視頻變速:對視頻播放速度調(diào)整,實現(xiàn)慢鏡頭或者快鏡頭效果套才。

視頻配樂:選取本地或者網(wǎng)絡音樂作為視頻的背景音樂迂猴。

視頻配音:通過mic phone對視頻配音。

視頻濾鏡:調(diào)整視頻的畫面顏色效果霜旧。

濾鏡特效:在視頻里面增加顫抖错忱,心跳等效果

時間特效:在視頻里面增加慢動作,重復等效果

3RDVECore功能概述

RDVECore是銳動推出的無UI,高度抽象化API的視頻編輯SDK,支持以下功能:

3.1豐富的編輯功能

RDVECore包含了豐富的基礎功能挂据,對于編輯中的視頻以清、圖片、音樂有各種 處理方式崎逃,并且可以根據(jù)實際的業(yè)務需求掷倔,進行搭配組合,所有處理都可以精確 到毫秒級个绍,達到最專業(yè)的的要求勒葱,主要功能如下:

MVMV根據(jù)配置資源進行混合以及動畫,增強短視頻效果

濾鏡RDVEUISDK本身提供豐富的濾鏡效果讓開發(fā)者進行選擇巴柿,同時用戶還可以根據(jù)自己的需求進行濾鏡擴展凛虽。

字幕特效字幕特效支持在指定位置,指定時間段顯示广恢;實時預覽效果

配音凯旋、配樂支持指定時間段添加配音; 支持配音、配樂與視頻原音比例調(diào)節(jié)至非; 支持本地添加更多配樂

截取钠署、分割支持毫秒級截取、分割視頻荒椭; 支持快速預覽截取谐鼎、分割后視頻

調(diào)速調(diào)整視頻的播放速度,快放或者慢放

轉場支持多種轉場趣惠; 支持隨機轉場狸棍、指定轉場時長等擴展設置

其它編輯功能支持多種比例裁剪; 支持90味悄、180隔缀、270度旋轉視頻畫面; 支持左右鏡像傍菇、上下鏡像猾瘸; 支持輸出比例調(diào)整;

3.2完善的視頻拍攝功能

·實時美顏可以在拍攝過程中實時人臉美膚丢习,提亮牵触、美白等效果,達到人臉美化咐低,同時支持美化程度的調(diào)節(jié)

·人臉貼紙/掛件支持人臉識別及貼紙/掛件顯示

·拍攝自由定義

· RDVECore在拍攝過程中揽思,可以根據(jù)具體的錄制需求,進行自由化的設定见擦,擁有更佳優(yōu)異的拍攝錄制效果钉汗。

多段拍攝一個視頻可以分多段次拍攝

攝像頭切換前、后攝像頭自由切換鲤屡,中間無卡頓

多比例支持支持1:1 损痰、9:16、16:9多個比例錄制

變焦酒来、對焦通過相應手勢可以縮放攝像頭采集畫面及清晰度

·濾鏡

在拍攝過程中卢未,除了實時美顏,同時還可以實時添加濾鏡效果堰汉,RDVEUISDK本身提供豐富的濾鏡效果讓開發(fā)者進行選擇辽社,同時用戶還可以根據(jù)自己的需求進行濾鏡擴展。

·照片當前攝像頭畫面保存到圖片

RDVECore架構圖:

RDVECore簡要流程圖:

4XCode集成步驟

4.1運行環(huán)境

SDK支持iOS7.0及以上版本的設備翘鸭,兼容iPhone滴铅、iPad、iPod touch

4.2注冊申請AppKey和APPSecret

4.2.1打開http://www.rdsdk.com/就乓,在銳動官網(wǎng)首頁選擇登錄或注冊汉匙,新用戶先注冊譬淳,老用戶直接登錄。

4.2.2登錄完成后盹兢,進入視頻云管理點擊“+新增”,填寫您應用的名稱等守伸,點擊“提交”绎秒,應用創(chuàng)建完成。

4.2.3創(chuàng)建應用完成后會自動跳轉至個人中心頁面尼摹,此時會獲取到該應用的 AppKey 和 AppSecret见芹。

4.3下載并導入SDK

4.3.1添加靜態(tài)庫libRDVECore.a和頭文件

4.3.2添加RDVECore.bundle

4.3.3工程設置

TARGETS的Deployment Info僅勾選豎屏(Portrait),橫屏(LandscapeLeft蠢涝、LandscapeRight)不勾選:

IOS10適配

在 Info.plist 中 添 加 NSCameraUsageDescription 玄呛、

NSMicrophoneUsageDescription、NSPhotoLibraryUsageDescription和二。

添加引用蘋果官方庫

如果錄制時使用faceU徘铝,還需要引用庫Accelerate.framework

設置 Other Linker Flags

在 TARGETS->Build Settings->Other Linker Flags 中加入-ObjC。

4.4編輯視頻

4.4.1引入頭文件及初始化

#import "RDVECore.h"

/** 初始化對象

*

* @param appkey 在銳動SDK官網(wǎng)(http://www.rdsdk.com/)中注冊的應用Key惯吕。

* @param appsecret 在銳動SDK官網(wǎng)(http://www.rdsdk.com/)中注冊的應用秘鑰惕它。

* @param size 視頻分辨率

* @param fps 視頻幀率(1-30)

* @param resultFailBlock 初始化失敗的回調(diào)[error:初始化失敗的錯誤碼]

*/

- (instancetype) initWithAPPKey:(NSString *)appkey

APPSecret:(NSString *)appsecret

videoSize:(CGSize)size

fps:(int)fps

resultFail:(void (^)(NSError *error))resultFailBlock;

4.4.2構造虛擬視頻并添加到播放器

1、 構造一個或多個場景废登,并設置場景的相應屬性

NSMutableArray *scenes = [NSMutableArray new];

RDScene *scene = [[RDScene alloc] init];

(設置場景的相應屬性)

[scenes addObject:scene];

2淹魄、 將場景添加到播放器中

[_videoCoreSDK addScenes:scenes];

3、 設置播放器屬性

_videoCoreSDK.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.width);

_videoCoreSDK.delegate = self;

_videoCoreSDK.shouldRepeat = YES;

4堡距、 構造虛擬視頻

[_videoCoreSDK build];

5甲锡、 將播放器添加到視圖中

[self.view addSubview:_videoCoreSDK.view];

4.4.3MV

1、 初始化MV

NSMutableArray *selectMVEffects = [NSMutableArray array];

VVMovieEffect *mvEffect = [[VVMovieEffect alloc] init];

[selectMVEffects addObject:mvEffect];

2羽戒、 設置MV屬性

//MV路徑

@property (nonatomic,strong) NSURL* _Nullable url;

//MV顯示時長

@property (nonatomic,assign) CMTimeRange timeRange;

//MV類型

@property (nonatomic,assign) RDVideoMVEffectType type;

3缤沦、 將MV添加到播放器中,或者將MV從播放器中移除

1) 添加[_videoCoreSDK addMVEffect:selectMVEffects];

2) 移除[_videoCoreSDK addMVEffect:nil];

4易稠、 重新構造虛擬視頻

[_videoCoreSDK build];

4.4.4配樂

1疚俱、 初始化配樂

RDMusic *music = [[RDMusic alloc] init];

2、 設置配樂屬性

/**音樂總時間范圍

*/

@property (nonatomic, assign) CMTimeRange timeRange;

/**音樂截取時間范圍

*/

@property (nonatomic, assign) CMTimeRange clipTimeRange;

/**音樂名稱

*/

@property (nonatomic, strong) NSString *_Nullable name;

/**音量(0.0-1.0)缩多,默認為1.0

*/

@property (nonatomic, assign) float volume;

/**是否重復播放

*/

@property (nonatomic, assign) BOOL isRepeat;

3呆奕、 將配樂添加到播放器中,或者將配樂從播放器中移除

1) 添加:[_videoCoreSDK addMusic:music];

2) 移除:[_videoCoreSDK addMusic:nil];

4衬吆、 重新構造虛擬視頻

[_videoCoreSDK build];

4.4.5配音

1梁钾、 初始化配音

NSMutableArray *dubbingArr = [NSMutableArray array];

RDMusic *music = [[RDMusic alloc] init];

[dubbingArr addObject:music];

2、 設置配音屬性:同配樂

3逊抡、 將配音添加到播放器中姆泻,或者將配音從播放器中移除

1) 添加:[_videoCoreSDK addDubbingMusics:dubbingArr];

2) 移除:[_videoCoreSDK addDubbingMusics:nil];

4零酪、 重新構造虛擬視頻

[_videoCoreSDK build];

4.4.6字幕、特效

1拇勃、 在初始化播放器時設置

_videoCoreSDK.frameLayerBlock = ^(CMTime currentTime, CALayer *layer) {

[weakSelf addSubLayerToFront:layer time:currentTime];

};

2四苇、 初始化字幕(特效)

NSMutableArray *effects = [NSMutableArray array];

RDCaption *caption = [[RDCaption alloc] init];

[effects addObject:caption];

3、 設置字幕(特效)屬性

/**字幕中心坐標點比例

*/

@property (nonatomic ,assign) CGPoint captionCenter;

/**字幕寬度點比例

*/

@property (nonatomic ,assign) CGFloat widthProportion;

/**字幕幀率

*/

@property (nonatomic ,assign) CGFloat fps;

/**字幕時間范圍

*/

@property (nonatomic ,assign) CMTimeRange timeRange;

/**字幕旋轉角度

*/

@property (nonatomic ,assign) float angle;

/**字幕縮放大小

*/

@property (nonatomic ,assign) float scale;

/**id

*/

@property (nonatomic ,assign) NSInteger pid;

/**貼圖類型 0 帶文字,1 不帶文字

*/

@property (nonatomic ,assign) NSInteger type;

/** 字幕圖片文件路徑

*/

@property (nonatomic ,copy) NSString *_Nullable path;

/**圖片前綴名字

*/

@property (nonatomic ,copy) NSString *_Nullable name;

/**持續(xù)時間

*/

@property (nonatomic ,assign) float duration;

/**多少圖片

*/

@property (nonatomic ,assign) NSInteger count;

/**圖片區(qū)域

*/

@property (nonatomic ,assign) CGRect frame;

/**原始圖片大小

*/

@property (nonatomic ,assign) CGSize size;

/**圖片文字

*/

@property (nonatomic ,copy) NSString *_Nullable pText;

/** 文字圖片

*/

@property (nonatomic ,strong) UIImage *_Nullable tImage;

/**文字字體名稱

*/

@property (nonatomic ,copy) NSString *_Nullable tFontName;

/**文字字體大小

*/

@property (nonatomic ,assign) float tFontSize;

/** 文字旋轉度數(shù)

*/

@property (nonatomic ,assign) float tAngle;

/**文字顏色

*/

@property (nonatomic ,strong) UIColor *_Nullable tColor;

/**文字描邊顏色

*/

@property (nonatomic ,strong) UIColor * _Nullable strokeColor;

/**文字描邊寬度

*/

@property (nonatomic ,assign) float strokeWidth;

/** 文字區(qū)域

*/

@property (nonatomic ,assign) CGRect tFrame;

/**文字開始時間

*/

@property (nonatomic ,assign) float tBegin;

/**文字結束時間

*/

@property (nonatomic ,assign) float tEnd;

/**幀動畫

*/

@property (nonatomic ,strong) NSArray *_Nullable frames;

/**時間動畫

*/

@property (nonatomic ,strong) NSArray *_Nullable times;

/** 字幕是否支持拉伸

*/

@property (nonatomic, assign) BOOL tStretching;

/**字幕拉伸的

*/

@property (nonatomic ) UIEdgeInsets edgeInsets;

/**字幕拉伸的

*/

@property (nonatomic ) CGRect contentsCenter;

/**音樂

*/

@property (nonatomic , strong) RDMusic *_Nullable music;

4方咆、 初始化CaptionLayer

CaptionLayer* captionLayer = [[CaptionLayer alloc] initWithCaption:caption videoSize:videoSize];

* videoSize:初始化播放器時月腋,設置的視頻分辨率

5、 在字幕(特效)的顯示范圍(timeRange)內(nèi)瓣赂,將captionLayer添加到1榆骚、中的layer上。

具體參照RDVEUISDK煌集。

4.4.7濾鏡

1妓肢、 添加所有的濾鏡

NSMutableArray *globalFilters = [NSMutableArray array];

1) 初始化濾鏡

RDFilter* filter = [RDFilter new];

[globalFilters addObject:filter];

2) 設置濾鏡屬性

/**濾鏡類型

*/

@property (nonatomic,assign)NSInteger type;

/**濾鏡名稱

*/

@property (nonatomic,copy )NSString *name;

/**濾鏡acv地址

*/

@property (nonatomic,copy )NSString *acvPath;

3) 添加所有濾鏡

[_videoCoreSDK addGlobalFilters:globalFilters];

2、 設置濾鏡

[_videoCoreSDK setGlobalFilter:selectFilterIndex];

4.4.8倒放

/** 倒序

*params: url 視頻源地址

*params: outputUrl 輸出路徑

*params: timeRange 倒序時間范圍

*params: videoSpeed 視頻速度

*params: progressBlock 倒序進度回調(diào)

*params: finishBlock 結束回調(diào)

*params: failBlock 失敗回調(diào)

*params: cancel 是否取消

*/

+ (void)exportReverseVideo:(NSURL *)url

outputUrl:(NSURL *)outputUrl

timeRange:(CMTimeRange)timeRange

videoSpeed:(float)speed

progressBlock:(void (^)(NSNumber *prencent))progressBlock

callbackBlock:(void (^)())finishBlock

fail:(void (^)())failBlock

cancel:(BOOL *)cancel;

4.4.9水印

/**添加水印

* @param image 水印圖片

* @param point 水印在視頻中相對于左上角的位置(值為:0.0~1.0)

* @param scale 水印的縮放比例苫纤,默認為1(圖片的原始大小)

*/

- (void) addWaterMark:(UIImage *)image withPoint:(CGPoint)point scale:(CGFloat)scale;

/**添加文字水印

* @param waterText 水印文字

* @param waterColor 水印文字的顏色

* @param waterFont 水印文字的字體

* @param point 水印在視頻中相對于左上角的位置(值為:0.0~1.0)

*/

- (void) addWaterMark:(NSString *)waterText color:(UIColor *)waterColor font:(UIFont *)waterFont withPoint:(CGPoint)point;

/**移除水印

*/

- (void)removeWaterMark;

/**添加片尾LOGO

* @param logoImage LOGO圖片

* @param userName 用戶名

* @param showDuration 展示時長

* @param fadeDuration 淡入時長

*/

- (void) addEndLogoMark:(UIImage *)logoImage userName:(NSString *)userName showDuration:(float)showDuration fadeDuration:(float)fadeDuration;

/**移除片尾LOGO

*/

- (void)removeEndLogoMark;

4.4.10獲取縮略圖

/**獲取某個時間點的縮略圖

*/

- (UIImage*)getImageAtTime:(CMTime) outputTime scale:(float) scale;

4.4.11導出視頻

/** 導出視頻

*params: movieURL 輸出路徑

*params: size 分辨率大小

*params: bitrate 碼率(例:設置為5M碼率碉钠,傳值為5)

*params: fps 幀率

*params: maxExportVideoDuration 最大導出時長 默認為0 不限制

*params: progress 導出進度

*params: success 完成

*params: fail 失敗

*/

- (void)exportMovieURL:(NSURL*) movieURL

size:(CGSize) size

bitrate:(int)bitrate

fps:(int)fps

maxExportVideoDuration:(float)maxExportVideoDuration

progress:(void(^)(float))progress

success:(void(^)())success

fail:(void(^)(NSError*))fail;

/** 取消導出

*/

- (void)cancelExportMovie:(void(^)())cancelBlock;

4.4.12編輯完成后釋放

[_videoCoreSDK stop];

_videoCoreSDK.delegate = nil;

_videoCoreSDK = nil;

4.5錄制視頻

4.5.1引入頭文件及初始化

#import "RDCameraManager.h"

/** 初始化對象

*

* @param appkey 在銳動SDK官網(wǎng)(http://www.rdsdk.com/)中注冊的應用Key。

* @param appsecret 在銳動SDK官網(wǎng)(http://www.rdsdk.com/)中注冊的應用秘鑰卷拘。

* @param resultFailBlock 初始化失敗的回調(diào)[error:初始化失敗的錯誤碼]

*/

- (instancetype) initWithAPPKey:(NSString *)appkey

APPSecret:(NSString *)appsecret

resultFail:(void (^)(NSError *error))resultFailBlock;

4.5.2錄制前設置錄制相關參數(shù)

/** 錄制之前準備放钦,用于設置錄制相關參數(shù)。

* @param frame 錄制預覽視圖位置大小

* @param superview 源視圖控制器

* @param bitrate 錄制碼率

* @param fps 錄制幀率

* @param mode 錄制視頻方式:YES:正方形 NO:全屏

* @param size 錄制視頻分辨率

* @param isFront 是否是前置攝像頭錄制

* @param faceU 是否使用faceU

*/

- (void) prepareRecordWithFrame:(CGRect)frame

superview:(UIView *)superview

bitrate: (int) bitrate

fps: (int) fps

mode: (BOOL) mode

writerSize: (CGSize) size

isFront:(BOOL) isFront

faceU:(BOOL) faceU;

//左右滑動錄制預覽視圖時恭金,是否切換濾鏡操禀。默認為YES(切換)

@property (nonatomic, assign) BOOL swipeScreenIsChangeFilter;

//美顏狀態(tài)

@property (nonatomic , assign) BeautifyState beautifyState;

/** 設置對焦圖片

*/

- (void) setfocus;

4.5.3錄制

/** 啟用預覽

*/

- (void) startCamera;

/** 關閉預覽

*/

- (void) stopCamera;

/** 開始錄制

*/

- (void) beginRecording;

/** 停止錄制

*/

- (void) stopRecording;

/** 拍照

*/

- (void) takePhoto:(int)orientation block:(void(^)(UIImage* image)) func;

/** 聚焦

*/

- (void) focus:(UITapGestureRecognizer *)tap;

/** 切換錄制視頻方式

* @parma mode:YES:正方形 NO:全屏

* @parma frame:錄制預覽視圖位置大小

*/

- (void) changeMode:(BOOL) mode cameraScreenFrame:(CGRect)frame;

4.5.4錄制回調(diào)

/** 滑動切換到的當前濾鏡Index

*/

- (void) sendFilterIndex:(NSInteger) index;

/** 聚焦時回調(diào)

*/

- (void) tapTheScreenFocus;

/** 啟用預覽(startCamera)后回調(diào)。

* 可用于收到此回調(diào)前横腿,界面上錄制相關按鈕不可用颓屑。

*/

- (void) cameraScreenDid;

/** 當前錄制時間

*/

- (void) currentTime:(float) time;

/** 滑動錄制預覽視圖開始

* @params swipDirection (0 :左劃 1:右劃)

*/

- (void) swipeScreenBegin:(NSInteger)swipDirection;

/** 滑動錄制預覽視圖中

* @param percent 滑動動預覽視圖中的位置

* @param swipDirection (0 :左劃 1:右劃)

*/

- (void) swipeScreenChanging:(float)percent swipDirection:(NSInteger)swipDirection;

/** 滑動錄制預覽視圖結束

* @params swipDirection (0 :左劃 1:右劃)

*/

- (void) swipeScreenChangeEnd:(NSInteger)swipDirection;

/** 錄制開始

*/

- (void) movieRecordBegin;

/** 錄制取消

*/

- (void) movieRecordCancel;

/** 錄制結束

*/

- (void) movieRecordingCompletion:(NSURL *) videoUrl;

4.5.5faceU

//人臉道具貼紙證書

@property (nonatomic , assign) void* faceUAuth;

//人臉道具貼紙證書長度

@property (nonatomic , assign) unsigned int faceUAuthlength;

//瘦臉 0.0~1.0 默認0.68

@property (nonatomic , assign) float cheekThinning;

//大眼 0.0~2.0 默認1.53

@property (nonatomic , assign) float eyeEnlarging;

//美白 0.0~1.0 默認0.48

@property (nonatomic , assign) float colorLevel;

//磨皮 1 2 3 4 5 6 默認3

@property (nonatomic , assign) float blurLevel;

//瘦臉等級 0.0 ~ 1.0 默認1.0

@property (nonatomic , assign) float faceShapeLevel;

//瘦臉類型

@property (nonatomic , assign) float faceShape;

/** 切換FaceUItem

*/

- (void) changeFaceUItem:(NSString*) itemString withName:(NSString*)name;

4.5.6錄制時播放音樂

/**使用音樂路徑

*/

- (void)setMusic:(NSURL *)musicUrl;

/** 播放音樂 rate(極慢:1.0/3.0 慢:1.0/2.0 正常:1.0 快:2.0 極快:3.0)

*/

- (void)playMusic:(float)rate;

/** 暫停音樂

*/

- (void)pauseMusic;

/** 停止播放音樂

*/

- (void)stopMusic;

4.5.7濾鏡

/** 添加濾鏡組

*/

- (void) addFilters:(NSArray *) filters;

/** 設置濾鏡

*/

- (void) setFilterAtIndex:(NSInteger ) index;

/** 移除濾鏡組

*/

- (void) removeFilters;

4.5.8合并及倒序

/** 合并錄制文件

*/

- (void)mergeAndExportVideosAtFileURLs:(NSArray *)fileArray

progress:(void(^)(NSNumber *progress))progressBlock

finish:(void(^)(NSURL *videourl))finish

fail:(void(^)(NSError *error))fail

cancel:(void(^)())cancel;

/** 取消合并

*/

- (void)cancelMerge;

/** 倒序

*params: url 視頻源地址

*params: outputUrl 輸出路徑

*params: timeRange 倒序時間范圍

*params: progressBlock 倒序進度回調(diào)

*params: callbackBlock 結束回調(diào)

*params: failBlock 失敗回調(diào)

*/

- (void)exportReverseVideo:(NSURL *)url

outputUrl:(NSURL *)outputUrl

timeRange:(CMTimeRange)timeRange

progressBlock:(void (^)(NSNumber *prencent))progressBlock

callbackBlock:(void (^)())callbackBlock

fail:(void (^)())failBlock;

4.5.9獲取帶濾鏡效果的截圖

/** 獲取帶濾鏡的縮略圖

*/

+(void) returnImageWith:(UIImage *)inputImage

Filter:(RDFilter *)obj

withCompletionHandler:(void (^)(UIImage *processedImage))block;

4.5.10錄制完成后釋放

[_cameraManager stopCamera];

[_cameraManager deleteItems];

_cameraManager.delegate = nil;

_cameraManager = nil;

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市耿焊,隨后出現(xiàn)的幾起案子揪惦,更是在濱河造成了極大的恐慌,老刑警劉巖罗侯,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件器腋,死亡現(xiàn)場離奇詭異,居然都是意外死亡钩杰,警方通過查閱死者的電腦和手機纫塌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讲弄,“玉大人措左,你說我怎么就攤上這事”艹” “怎么了怎披?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵胸嘁,是天一觀的道長。 經(jīng)常有香客問我凉逛,道長性宏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任状飞,我火速辦了婚禮毫胜,結果婚禮上,老公的妹妹穿的比我還像新娘昔瞧。我一直安慰自己,他們只是感情好菩佑,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布自晰。 她就那樣靜靜地躺著,像睡著了一般稍坯。 火紅的嫁衣襯著肌膚如雪酬荞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天瞧哟,我揣著相機與錄音混巧,去河邊找鬼。 笑死勤揩,一個胖子當著我的面吹牛咧党,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播陨亡,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼傍衡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了负蠕?” 一聲冷哼從身側響起蛙埂,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎遮糖,沒想到半個月后绣的,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡欲账,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年屡江,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赛不。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡盼理,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俄删,到底是詐尸還是另有隱情宏怔,我是刑警寧澤奏路,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站臊诊,受9級特大地震影響鸽粉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抓艳,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一触机、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧玷或,春花似錦儡首、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至位他,卻和暖如春氛濒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鹅髓。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工舞竿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人窿冯。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓骗奖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親醒串。 傳聞我的和親對象是個殘疾皇子重归,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

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