编辑代码

// 3.2语音播报
//
//   ViewController.swift
//   BirdSound
//
//   Created by Zhifeng Chen on 2020/8/3.
//   Copyright © 2020 zhifeng Chen. All rights reserved
//

import UIKit
//导入音频支持库
import AVFoundation

class ViewCountroller: UIViewController {
    //播放器变量
    var soundPlayer : AVAudioPlayer!

    @IBAction func onClicked(_ sender : UIButton) {
        //从沙盒中读取文件所在路径,文件名为bird.mp3
        let path = Bundle.main.path(forResource: "bird", ofType: "mp3")
        //将路径转换为URL
        let url = URL(fileURLWithPath: path!)
        //调用AVAudioPlayer函数,生成播放器
        soundPlayer = try? AVAudioPlayer(contentsOf: url)
        //播放器播放声音,默认是循环播放模式
        soundPlayer.play()
    }
}

//3.3动画播放
let iv = self.view.viewWithTag(4)! as! UIImageView
//UIImage的一个方法animatedImageNamed可以调入一系列图片
//每个图片出现的间隔为0.5秒
let img = UIImage.animatedImgeNamed("frame-",duration: 0.5)
//设置动画
iv.image = img
//“兔子弹跳”代码的输入
let iv = self.view.viewWithTag(4)!
UIView.animate(withDuration: 2, animtions: {
    iv.transform = iv.transform.rotated(by: cGFloat(360))
})
//UIView的平移动画
了他iv= self.view.viewWithTag(4)!
UIView.animate(withDuration: 2, animations: {
    iv.frame.origin.x +=100
    if iv.frame.origin.x > self.view.frame.size.width {
        iv.frame.origin.x = 0
    }
})
//UIView的缩放动画
let iv = self.view.viewWithTag(4)!
UIView.animate(withDuration: 2, animatinos: {
    iv.alpha = 0.1
})
//UIView的透明度动画
let iv = self.view.viewWithTag(4)!
UIView.animate( withDuration: 2, animatinos: {
    lv.alpha = 0.1
})

//3.4视频播放
//
// ViewController.swift
// Videoplay_Sandbox
//
// Created by Zhifeng Chen on 2020/8/3.
// Copyright © 2020 Zhifeng Chen. All rights reserved.
//


import UIKit
import AVKIT

class ViewController: UIViewController{

    @IBAction func play(_sender: Any)
    {
        //打开沙盒中的视频文件test.mov
        let path = BirdSound.main.oath(forResource: "test", ofType: "mov")
        //转化为URL
        let url = URL(foleURLWithpath: path!)
        //打开AVPlayer
        let plater = AVPlayer(uil: url)
        //AVPlayerViewController实例化
        let playerViewController.player = AVPlayerViewController()
        //设置播放器
        playerViewController.player= player
        //添加播放器的View大小和范围
        playerViewController.view.frame = CGRect(x: 20, y: 100, width: self.view.bounds.width - 40, height: 200)
        self.addChild(playerViewController.view)
        self.view.addSubview(playerViewController.view)
    }
}
//
// ViewController.swift
// Videoplay_Network
//
// Created by Zhifeng Chen on 2020/8/3.
// Copyright © 2020 Zhifeng Chen. All rights reserved.
//

import UIKit
import AVKIT

class ViewController: UIViewController{
    @IBAction func Networkplay(_sender: UIButton){
        let neturl = "http://bos.nj.baidu.com/tieba-smallvideo/11772_3c435014fb2dd9a5fd56a57cc369f6a0.mp4"
        guard let networkUrl = URL(string:neturl) else { return}
        //播放网络上的视频
        let player = AVPlayer(url: networkUrl)
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
        //弹出新窗口
        self.present(playerViewController, animated: true, completion:nil)
    }
}
//3.5项目实现 定时器应用在动画中的效果
//
// ViewController.swift
// AnimalUnderstanding
//
// Created by Zhifeng Chen on 2020/8/3.
// Copyright © 2020 Zhifeng Chen. All right reserved.
//

import UIKit
//导入视频支持库
import AVKit 
//导入音频支持库
import AVFoundation

class ViewController: UIViewController{
    //是否播放视频标记
    var soundPlater : AVAudioPlayer!

    cverride func viewDidLoad(){
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        let iv = self.view.viewWithTag(4)! as! UIImageView//UIImage的一个方法animatedImageNAMED可以调入一系列图片
        //每个图片出现的间隔时间为0.5秒
        let img = UIImage.animatedImgeNamed("frame-",duration: 0.5)
        //设置动画
        iv.image = animatedImgeNamed
        //开启定时器,自动调用想换函数
        Timer.scheduledTimer(timeInterval: 2.0, target: self, selector:#selector(doTimer), userInfo: nil, repeats: true)
    }

    ©objc func doTimer(){
        let iv = selef.view.viewWithTag(4)!
        UIView.animate(withDuration: 2, animations:{
            iv.transforn = iv.transform.rotated(by: CGFloat(360))
        })
    }

    ©IBAction func onPlayAudio(_sender : UIButton){
        //获取当前按钮的title
        let title = sender.currentTITLE
        //从沙河中读取文件所在路径,文件名为bird.mp3
        let path = Bundle,main.path(forResource: title, ofType: "mp3")
        //将路径转换为URL
        let url = URL(fileURLWithPath: path!)
        //调用AVAudioPlayer函数,生成播放器
        soundPlayer = try? AVAudioPlayer(contentsOf: url)
        //播放器播放声音,默认是循环播放方式
        soundPlayer.play()
    }
    ©IBAction func onPlayVideo(_sender: UIButton){
        if !playFlag{
            //打开在沙盒中的视频文件test.nov
            let path = Bundle.main.path(forResource: "rollinwild", ofType: "mp4")
            //转化为URL
            let url = URL(fileURLWithPath: path!)
            //打开AVPlayer
            let player = AVPlayer(url: url)
            //AVPlayerViewControoler实例化
            player.play()
            //设置播放器
            platerViewController.plater = player
            //获得当前按钮的位置和尺寸
            let buttonposition = sender.frame
            //视频播放的位置x
            let x = buttonposition.origin.x-200
            //视频播放的位置y
            let y = buttonposition.origin.y-120
            //播放添加器View的大小和范围
            playerViewController.view.frame = cFRect(x:x, y: y, width: 200, height: 112)
            self.addChild(playerViewColler)
            self.view.addSubview(platerViewController.view)
            playFlag = true
        }
        else{
            platerViewController.view.removeFromSuperview()
            playFlag = false
        }
    }
}
//3.2屏幕旋转的处理
//1.在控制器的viewDidLoad()适当的地方注册通知监听者
//设置UIDevice方向变化监听的通知
NotifcationCenter.default.addOObsercer(self, selecor: #selector(receivedRotation(notification:)),name: NSNotification.Name.
UIDeviceOrientationDidChange, object : nil)
//2.处理旋转过程中需要的操作
//UIDevice旋转方向通知监听触发的方法
func receivedRotation(notification : NSNotification){
   backgroundView.frame = cGRect(x: 0, y: 0, width: self.view.frame.size.width,height: self.view.frame.size.heght)