You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.2 KiB
93 lines
3.2 KiB
// |
|
// XHDisplayMediaViewController.m |
|
// MessageDisplayExample |
|
// |
|
// Created by HUAJIE-1 on 14-5-6. |
|
// Copyright (c) 2014年 嗨,我是曾宪华(@xhzengAIB),曾加入YY Inc.担任高级移动开发工程师,拍立秀App联合创始人,热衷于简洁、而富有理性的事物 QQ:543413507 主页:http://zengxianhua.com All rights reserved. |
|
// |
|
|
|
#import "XHDisplayMediaViewController.h" |
|
#import <MediaPlayer/MediaPlayer.h> |
|
|
|
#import "UIView+XHRemoteImage.h" |
|
#import "XHConfigurationHelper.h" |
|
|
|
@interface XHDisplayMediaViewController () |
|
|
|
@property (nonatomic, strong) MPMoviePlayerController *moviePlayerController; |
|
|
|
@property (nonatomic, weak) UIImageView *photoImageView; |
|
|
|
@end |
|
|
|
@implementation XHDisplayMediaViewController |
|
|
|
- (MPMoviePlayerController *)moviePlayerController { |
|
if (!_moviePlayerController) { |
|
_moviePlayerController = [[MPMoviePlayerController alloc] init]; |
|
_moviePlayerController.repeatMode = MPMovieRepeatModeOne; |
|
_moviePlayerController.scalingMode = MPMovieScalingModeAspectFill; |
|
_moviePlayerController.view.frame = self.view.frame; |
|
[self.view addSubview:_moviePlayerController.view]; |
|
} |
|
return _moviePlayerController; |
|
} |
|
|
|
- (UIImageView *)photoImageView { |
|
if (!_photoImageView) { |
|
UIImageView *photoImageView = [[UIImageView alloc] initWithFrame:self.view.frame]; |
|
photoImageView.contentMode = UIViewContentModeScaleAspectFill; |
|
photoImageView.clipsToBounds = YES; |
|
[self.view addSubview:photoImageView]; |
|
_photoImageView = photoImageView; |
|
} |
|
return _photoImageView; |
|
} |
|
|
|
- (void)setMessage:(id<XHMessageModel>)message { |
|
_message = message; |
|
if ([message messageMediaType] == XHBubbleMessageMediaTypeVideo) { |
|
self.title = NSLocalizedStringFromTable(@"Video", @"MessageDisplayKitString", @"详细视频"); |
|
self.moviePlayerController.contentURL = [NSURL fileURLWithPath:[message videoPath]]; |
|
[self.moviePlayerController play]; |
|
} else if ([message messageMediaType] ==XHBubbleMessageMediaTypePhoto) { |
|
self.title = NSLocalizedStringFromTable(@"Photo", @"MessageDisplayKitString", @"详细照片"); |
|
self.photoImageView.image = message.photo; |
|
if (message.thumbnailUrl) { |
|
NSString *placeholderImageName = [[XHConfigurationHelper appearance].messageInputViewStyle objectForKey:kXHMessageTablePlaceholderImageNameKey]; |
|
if (!placeholderImageName) { |
|
placeholderImageName = @"placeholderImage"; |
|
} |
|
|
|
[self.photoImageView setImageWithURL:[NSURL URLWithString:[message thumbnailUrl]] placeholer:[UIImage imageNamed:placeholderImageName]]; |
|
} |
|
} |
|
} |
|
|
|
#pragma mark - Life cycle |
|
|
|
- (void)viewWillDisappear:(BOOL)animated { |
|
[super viewWillDisappear:animated]; |
|
if ([self.message messageMediaType] == XHBubbleMessageMediaTypeVideo) { |
|
[self.moviePlayerController stop]; |
|
} |
|
} |
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
// Do any additional setup after loading the view. |
|
} |
|
|
|
- (void)didReceiveMemoryWarning { |
|
[super didReceiveMemoryWarning]; |
|
// Dispose of any resources that can be recreated. |
|
} |
|
|
|
- (void)dealloc { |
|
[_moviePlayerController stop]; |
|
_moviePlayerController = nil; |
|
|
|
_photoImageView = nil; |
|
} |
|
|
|
@end
|
|
|