标签: avplayer

在 iOS 13 上暂停时强制重绘 AVPlayerLayer

我使用 CoreImage 将实时效果应用于使用 AVPlayer 播放的视频。问题是当播放器暂停时,如果您使用滑块调整过滤器参数,则不会应用过滤器。

  let videoComposition = AVMutableVideoComposition(asset: asset, applyingCIFiltersWithHandler: {[weak self] request in

        // Clamp to avoid blurring transparent pixels at the image edges
        let source = request.sourceImage.clampedToExtent()
        let output:CIImage

        if let filteredOutput = self?.runFilters(source, filters: array)?.cropped(to: request.sourceImage.extent) {
             output = filteredOutput
         } else {
             output = source
         }


        // Provide the filter output to the composition
        request.finish(with: output, context: nil)
    })
Run Code Online (Sandbox Code Playgroud)

作为解决方法,我使用了这个在 iOS 12.4 之前有效的答案,但在 iOS 13 beta 6 中不再有效。寻找适用于 iOS 13 的解决方案。

core-image avfoundation ios avplayer cifilter

1
推荐指数
1
解决办法
718
查看次数

在范围内找不到 MPRemoteCommandCenter

我已经创建了一个音乐应用程序,现在我想添加一个功能来从锁定屏幕和控制中心控制音乐,但我收到错误,MPRemoteCommandCenter 不在范围内。

这是我的代码的样子。

我正在 XCode 12 中进行开发,但针对的是 iOS 12.4。

import UIKit
import AVKit

class SongViewController: UIViewController {
    
    
   
    
override func viewDidLoad() {
        super.viewDidLoad()
        
        
        let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(respondToSwipeGesture))
        swipeRight.direction = .right
        self.view.addGestureRecognizer(swipeRight)
        
        let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(respondToSwipeGesture))
        swipeLeft.direction = .left
        self.view.addGestureRecognizer(swipeLeft)
        
        setupRemoteTransportControls()
        setupNowPlaying()
        
        
    }
    
    func setupRemoteTransportControls() {
        
        let commandCenter = MPRemoteCommandCenter.shared()

       
        commandCenter.playCommand.addTarget { [unowned self] event in
            print("Play command - is playing: \(self.player.isPlaying)")
            if !self.player.isPlaying {
                self.play()
                return .success
            }
            return .commandFailed
        }

        // Add handler for …
Run Code Online (Sandbox Code Playgroud)

xcode ios avplayer swift mpremotecommandcenter

1
推荐指数
1
解决办法
1312
查看次数

SwiftUI AVPlayer - 如何暂停和恢复播放?

因此,我创建了一个名为“VideoElement”的视图,当父视图加载时,它将在后台播放视频。效果很好。但是,我不知道如何实现暂停/恢复系统。我想更改一个变量(var“paused”),该变量在 true 时暂停视频,在 false 时恢复播放。这有点管用。具体来说,当“暂停”为真时,视频暂停。但是,当它变为 false 时,视频不会恢复播放。

也许它可能与“updateUIViewController”有关?另外,我不知道为什么“暂停”必须是绑定变量而不是状态变量(@State 不起作用)。任何帮助将不胜感激。谢谢!

import SwiftUI
import AVKit

struct VideoElement: View {

    var fileName: String
    @Binding var paused: Bool //this controls playback

    var body: some View {
    
        let player = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forAuxiliaryExecutable: fileName)!))
    
        AVPlayerControllerRepresented(player: player)
            .onAppear {
                player.play()
            }
            .onChange(of: paused, perform: { paused in
                if paused {
                    player.pause()
                }
                else {
                    player.play() //should play the video, does not
                    print("resume") //this runs, so above should've run also
                }
            })
        }  
    }
}

struct AVPlayerControllerRepresented …
Run Code Online (Sandbox Code Playgroud)

ios avplayer avplayerviewcontroller swiftui uiviewrepresentable

1
推荐指数
1
解决办法
5375
查看次数

有没有办法阻止AVPlayer的速率属性被重置?

我正在使用AVPlayer对象进行视频播放,并具有调整播放器速率的控件.

除了每次按下停止/暂停按钮时AVplayer对象的速率值似乎重置为1.0,这一切都正常.有没有办法防止这种情况发生?

非常感谢.

xcode ios avplayer

0
推荐指数
1
解决办法
3257
查看次数

在 AVFoundation Framework for iPhone 中获取下载视频的接收字节

您好,我正在使用 AVFoundation Framework 播放来自互联网的剪辑。我用AVPlayerItem playerItemWithURL:URL

现在我想检查从该视频文件接收到的字节的大小。我在此页面上找不到任何相关内容: https //developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVPlayerItem_Class/Reference/Reference.html

那么有没有办法找到接收到的字节大小?

iphone objective-c avfoundation avplayer

0
推荐指数
1
解决办法
1781
查看次数

在IOS中不播放音频的avplayer

我正在尝试使用以下代码播放audiio,但它没有播放.任何形式的帮助将非常感激.

    NSError *sessionError = nil;
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&sessionError];
     [[AVAudioSession sharedInstance] setActive: YES error: nil];
     AVPlayerItem *item = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:audioUrl]];
    [self setPlayer:[[AVPlayer alloc] initWithPlayerItem:item]];
    [[self player] setActionAtItemEnd:AVPlayerActionAtItemEndNone];

    [[self player] play];
Run Code Online (Sandbox Code Playgroud)

ios avplayer

0
推荐指数
1
解决办法
1954
查看次数

iOS AVPlayer无法禁用隐藏式字幕

我使用AVPlayer创建了自己的视频播放器,除了隐藏式字幕外,其他所有功能都可以正常工作。我有一个正在测试的视频,而且我知道隐藏式字幕没有被嵌入。我可以在其他视频查看器中将其禁用。

closedCaptionDisplayEnabled
Run Code Online (Sandbox Code Playgroud)

我将AVPlayer上的该属性设置为NO,并记录了该属性以确保将其设置为no,但标题仍会出现。有谁知道为什么会这样吗?

objective-c ios avplayer

0
推荐指数
2
解决办法
1882
查看次数

长时间延迟后,AVPlayer开始再现视频

延迟约为10秒。我的代码段。这是HomeController的* .m文件:

@interface HomeController ()
@property(nonatomic, strong) AVPlayerViewController *playerViewController;
@implementation HomeController
- (void)viewDidLoad
{
    [super viewDidLoad];
    ...
    self.playerViewController = [[AVPlayerViewController alloc] init];
}
- (IBAction)watchDemoToggle:(id)sender {
    NSURL *url = [NSURL URLWithString:@"http://blahblahblah.com/demo.mp4"];
        AVURLAsset *asset = [AVURLAsset assetWithURL: url];
        AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];
    if(playerItem)
    {
        AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:playerItem];
        self.playerViewController.player = player;
        [self.playerViewController.player addObserver:self forKeyPath:@"status" options:0 context:nil];
        [self.playerViewController setShowsPlaybackControls:NO];
        [self presentViewController:self.playerViewController animated:YES completion:^{
            [self.playerViewController.player play];
            self.playerViewController.showsPlaybackControls = YES;
        }];
    }
}

#pragma mark - KVO
- (void)observeValueForKeyPath:(NSString *)keyPath
                      ofObject:(id)object …
Run Code Online (Sandbox Code Playgroud)

objective-c ios avplayer ios10

0
推荐指数
1
解决办法
1761
查看次数

使用Alamofire下载视频,然后在AV播放器上播放

我已使用以下代码从下载视频URL。下载视频效果很好。

func downloadVideo(){

    Alamofire.request("https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4").downloadProgress(closure:{ (progress) in
    print(progress.fractionCompleted)
    self.progressView.progress = Float(progress.fractionCompleted)

    }).responseData{ (response) in
       print(response.result)
       print(response.result.value!)
       print(response.result.description)

        if let data = response.result.value {
            let obj = String(data: data, encoding: .utf8)
            let player = AVPlayer(url: URL(string: obj!)!)
            self.playerController.player = player
            self.addChildViewController(self.playerController)
            self.view.addSubview(self.playerController.view)
            self.playerController.view.frame = self.view.frame
            player.play()

        }

    }
Run Code Online (Sandbox Code Playgroud)

但我想在播放此视频 AVPlayer

我发现“可能是视频”下载为NSData。是正确的。?下载完成后,任何人都可以帮助我如何播放此视频吗?

如果有人可以建议一些其他代码供您使用进度条下载视频,然后在Swift 3.0中播放它,那将是很好的。

TIA。

nsdata ios avplayer alamofire swift3

0
推荐指数
1
解决办法
1705
查看次数

使用AVPlayer播放H.265视频文件

我正在尝试使用AVPlayer播放H.265视频文件(两者都在iOS 10,11中).以下是代码:

 let fileUrl = Bundle.main.url(forResource: "sample-h265-360", withExtension: "mp4")
 player = AVPlayer(url: fileUrl!)
 player?.play()
Run Code Online (Sandbox Code Playgroud)

音频播放正常,但视频没有显示(我正在使用AVPlayerViewController).我已经读过iOS 11支持H.265但结果对我来说是相同的(音频播放但视频没有显示).

我尝试传输文件并使用其他应用程序播放.它与ShareIt一起运行良好.有人可以建议图书馆播放这些内容吗?或内置的音乐播放器分享使用的是什么?我的代码中有错误吗?有没有人成功使用AVPlayer播放H.265文件?

ios avplayer h.265 swift ios11

0
推荐指数
1
解决办法
981
查看次数