From bca991d9a55e50e3af710e9fc98564f04302f6e1 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 14 Aug 2021 11:14:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=9F=B3=E9=A2=91=E6=92=AD?= =?UTF-8?q?=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Classes/BDAlphaPlayerMetalView.m | 12 ++++++++++++ .../Reader/BDAlphaPlayerAssetReaderOutput.h | 2 ++ .../Reader/BDAlphaPlayerAssetReaderOutput.mm | 8 ++++++++ .../BDAlphaPlayerDemo/Info.plist | 19 ------------------- iOS/Example/BDAlphaPlayerDemo/Podfile.lock | 6 +++--- 5 files changed, 25 insertions(+), 22 deletions(-) diff --git a/iOS/BDAlphaPlayer/Classes/BDAlphaPlayerMetalView.m b/iOS/BDAlphaPlayer/Classes/BDAlphaPlayerMetalView.m index a5f95f0..7fb677f 100644 --- a/iOS/BDAlphaPlayer/Classes/BDAlphaPlayerMetalView.m +++ b/iOS/BDAlphaPlayer/Classes/BDAlphaPlayerMetalView.m @@ -29,6 +29,8 @@ @interface BDAlphaPlayerMetalView () @property (atomic, assign) BOOL hasDestroyed; +@property (nonatomic, strong) AVPlayer *audioPlayer; + @end @implementation BDAlphaPlayerMetalView @@ -141,6 +143,16 @@ - (void)play [self renderOutput:output resourceModel:self.model completion:^{ [weakSelf renderCompletion]; }]; + + // 播放音频 + if (output.audioItem) { + AVAudioSession *session = [AVAudioSession sharedInstance]; + [session setCategory:AVAudioSessionCategoryPlayback error:nil]; + [session setActive:YES error:nil]; + + self.audioPlayer = [[AVPlayer alloc] initWithPlayerItem:output.audioItem]; + [self.audioPlayer play]; + } } - (void)renderCompletion diff --git a/iOS/BDAlphaPlayer/Classes/Reader/BDAlphaPlayerAssetReaderOutput.h b/iOS/BDAlphaPlayer/Classes/Reader/BDAlphaPlayerAssetReaderOutput.h index 47626e6..647b5a5 100644 --- a/iOS/BDAlphaPlayer/Classes/Reader/BDAlphaPlayerAssetReaderOutput.h +++ b/iOS/BDAlphaPlayer/Classes/Reader/BDAlphaPlayerAssetReaderOutput.h @@ -31,6 +31,8 @@ typedef NS_ENUM(NSUInteger, BDAlphaPlayerAssetReaderOutputErrorCode) { @property (nonatomic, assign, readonly) CGSize videoSize; +@property (nonatomic, strong, readonly) AVPlayerItem *audioItem; + - (BOOL)hasNextSampleBuffer; - (CMSampleBufferRef const _Nullable)copyNextSampleBuffer; diff --git a/iOS/BDAlphaPlayer/Classes/Reader/BDAlphaPlayerAssetReaderOutput.mm b/iOS/BDAlphaPlayer/Classes/Reader/BDAlphaPlayerAssetReaderOutput.mm index e85b6b4..0359ee9 100644 --- a/iOS/BDAlphaPlayer/Classes/Reader/BDAlphaPlayerAssetReaderOutput.mm +++ b/iOS/BDAlphaPlayer/Classes/Reader/BDAlphaPlayerAssetReaderOutput.mm @@ -106,6 +106,14 @@ - (void)setupWithURL:(NSURL *)url error:(NSError * _Nullable __autoreleasing * _ return; } + // 提取音轨 + NSArray *audioTracks = [asset tracksWithMediaType:AVMediaTypeAudio]; + AVAssetTrack *audioTrack = [audioTracks firstObject]; + if (audioTrack) { + // 存在音轨,转成AVPlayerItem + _audioItem = [AVPlayerItem playerItemWithAsset:audioTrack.asset]; + } + NSArray *videoTracks = [asset tracksWithMediaType:AVMediaTypeVideo]; AVAssetTrack *videoTrack = [videoTracks firstObject]; if (!videoTrack) { diff --git a/iOS/Example/BDAlphaPlayerDemo/BDAlphaPlayerDemo/Info.plist b/iOS/Example/BDAlphaPlayerDemo/BDAlphaPlayerDemo/Info.plist index 72bf2c4..1993c7f 100644 --- a/iOS/Example/BDAlphaPlayerDemo/BDAlphaPlayerDemo/Info.plist +++ b/iOS/Example/BDAlphaPlayerDemo/BDAlphaPlayerDemo/Info.plist @@ -20,25 +20,6 @@ 1 LSRequiresIPhoneOS - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - SceneDelegate - UISceneStoryboardFile - Main - - - - UIApplicationSupportsIndirectInputEvents UILaunchStoryboardName diff --git a/iOS/Example/BDAlphaPlayerDemo/Podfile.lock b/iOS/Example/BDAlphaPlayerDemo/Podfile.lock index af61b61..bc34978 100644 --- a/iOS/Example/BDAlphaPlayerDemo/Podfile.lock +++ b/iOS/Example/BDAlphaPlayerDemo/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - BDAlphaPlayer (1.1.0) + - BDAlphaPlayer (1.2.0) DEPENDENCIES: - BDAlphaPlayer (from `../../../`) @@ -9,8 +9,8 @@ EXTERNAL SOURCES: :path: "../../../" SPEC CHECKSUMS: - BDAlphaPlayer: 6ec0535dbbac6b089e94acb5559dcdf77dd1d5a8 + BDAlphaPlayer: 8af2048ee8ef8c31a73a99f83882cf4242e89df0 PODFILE CHECKSUM: a2a7c83a00e25dc193359c91e412457a63e7fbad -COCOAPODS: 1.8.4 +COCOAPODS: 1.10.1