From 83b9d5c682b21d88133f24da0f94dd56bd79e687 Mon Sep 17 00:00:00 2001
From: 单军华
Date: Thu, 19 Jul 2018 13:38:55 +0800
Subject: [PATCH] change
---
screendisplay/Pods/EaseUI/EaseUI/EMUIKit/3rdparty/DeviceHelper/internal/EMAudioPlayerUtil.m | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 157 insertions(+), 0 deletions(-)
diff --git a/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/3rdparty/DeviceHelper/internal/EMAudioPlayerUtil.m b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/3rdparty/DeviceHelper/internal/EMAudioPlayerUtil.m
new file mode 100755
index 0000000..ca9221f
--- /dev/null
+++ b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/3rdparty/DeviceHelper/internal/EMAudioPlayerUtil.m
@@ -0,0 +1,157 @@
+/************************************************************
+ * * Hyphenate CONFIDENTIAL
+ * __________________
+ * Copyright (C) 2016 Hyphenate Inc. All rights reserved.
+ *
+ * NOTICE: All information contained herein is, and remains
+ * the property of Hyphenate Inc.
+ * Dissemination of this information or reproduction of this material
+ * is strictly forbidden unless prior written permission is obtained
+ * from Hyphenate Inc.
+ */
+
+#import "EMAudioPlayerUtil.h"
+#import <AVFoundation/AVFoundation.h>
+#import "EaseLocalDefine.h"
+
+static EMAudioPlayerUtil *audioPlayerUtil = nil;
+
+@interface EMAudioPlayerUtil () <AVAudioPlayerDelegate> {
+ AVAudioPlayer *_player;
+ void (^playFinish)(NSError *error);
+}
+
+@end
+
+@implementation EMAudioPlayerUtil
+
+#pragma mark - public
++ (BOOL)isPlaying{
+ return [[EMAudioPlayerUtil sharedInstance] isPlaying];
+}
+
++ (NSString *)playingFilePath{
+ return [[EMAudioPlayerUtil sharedInstance] playingFilePath];
+}
+
++ (void)asyncPlayingWithPath:(NSString *)aFilePath
+ completion:(void(^)(NSError *error))completon{
+ [[EMAudioPlayerUtil sharedInstance] asyncPlayingWithPath:aFilePath
+ completion:completon];
+}
+
++ (void)stopCurrentPlaying{
+ [[EMAudioPlayerUtil sharedInstance] stopCurrentPlaying];
+}
+
+
+#pragma mark - private
++ (EMAudioPlayerUtil *)sharedInstance{
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ audioPlayerUtil = [[self alloc] init];
+ });
+
+ return audioPlayerUtil;
+}
+
+- (BOOL)isPlaying
+{
+ return !!_player;
+}
+
+// Get the path of what is currently being played
+- (NSString *)playingFilePath
+{
+ NSString *path = nil;
+ if (_player && _player.isPlaying) {
+ path = _player.url.path;
+ }
+
+ return path;
+}
+
+- (void)asyncPlayingWithPath:(NSString *)aFilePath
+ completion:(void(^)(NSError *error))completon{
+ playFinish = completon;
+ NSError *error = nil;
+ NSFileManager *fm = [NSFileManager defaultManager];
+ if (![fm fileExistsAtPath:aFilePath]) {
+ error = [NSError errorWithDomain:NSEaseLocalizedString(@"error.notFound", @"File path not exist")
+ code:-1
+ userInfo:nil];
+ if (playFinish) {
+ playFinish(error);
+ }
+ playFinish = nil;
+
+ return;
+ }
+
+ NSURL *wavUrl = [[NSURL alloc] initFileURLWithPath:aFilePath];
+ _player = [[AVAudioPlayer alloc] initWithContentsOfURL:wavUrl error:&error];
+ if (error || !_player) {
+ _player = nil;
+ error = [NSError errorWithDomain:NSEaseLocalizedString(@"error.initPlayerFail", @"Failed to initialize AVAudioPlayer")
+ code:-1
+ userInfo:nil];
+ if (playFinish) {
+ playFinish(error);
+ }
+ playFinish = nil;
+ return;
+ }
+
+ _player.delegate = self;
+ [_player prepareToPlay];
+ [_player play];
+}
+
+- (void)stopCurrentPlaying{
+ if(_player){
+ _player.delegate = nil;
+ [_player stop];
+ _player = nil;
+ }
+ if (playFinish) {
+ playFinish = nil;
+ }
+}
+
+- (void)dealloc{
+ if (_player) {
+ _player.delegate = nil;
+ [_player stop];
+ _player = nil;
+ }
+ playFinish = nil;
+}
+
+#pragma mark - AVAudioPlayerDelegate
+- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player
+ successfully:(BOOL)flag{
+ if (playFinish) {
+ playFinish(nil);
+ }
+ if (_player) {
+ _player.delegate = nil;
+ _player = nil;
+ }
+ playFinish = nil;
+}
+
+- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player
+ error:(NSError *)error{
+ if (playFinish) {
+ NSError *error = [NSError errorWithDomain:NSEaseLocalizedString(@"error.palyFail", @"Play failure")
+ code:-1
+ userInfo:nil];
+ playFinish(error);
+ }
+ if (_player) {
+ _player.delegate = nil;
+ _player = nil;
+ }
+}
+
+@end
--
Gitblit v1.8.0