信号:pause、alarm、kill;第二个项目:基于Mplayer的视频播放器

时间:2024-03-01 09:20:21

我要成为嵌入式高手之2月29日Linux高编第十二天!!

学习笔记

信号

1、pause

int pause(void);

功能:让进程睡眠直到接收到捕捉的信号才能继续向下执行

2、alarm

unsigned int alarm(unsigned int seconds);

功能:定时seconds秒后给进程调用发送SIGALRM信号

参数:seconds定时的秒数

返回值:

        成功返回之前设定剩余的秒数

3、kill

int kill(pid_t, int sig)

功能:给PID对应的进程发送sig信号

参数:

        pid:进程ID号

        sig:信号的编号

返回值:成功0,失败-1;

#include "head.h"

void hander(int signo)
{
    
    return;
}

int Mysleep(int seconds)
{
    signal(SIGALRM, hander);
    
    alarm(seconds);
    pause();

    signal(SIGALRM, SIG_DFL);

    return 0;
}

int main(void)
{
    printf("sleep up!\n");
    Mysleep(5);
    printf("sleep down!\n");

    return 0;
}

=====================================================================

Mplayer软件安装步骤:

一、让虚拟机能够上网

1、将虚拟机网卡设置为NAT模式       

                1.点击"虚拟机"

                2.点击"设置"  

                3.选择"网络适配器"

                4.修改为"NAT模式"

                5.点击"确定"

2.修改网卡配置文件,改为自动获取IP地址

                1.sudo vim /etc/network/interfaces 

                2.将文件内容修改为如下形式:

                        auto lo 

                        iface lo inet loopback 

                        auto ens33 

                        iface ens33 inet dhcp 

                3.关闭配置文件

                        ESC

                        :wq

3.重启网络服务

        sudo /etc/init.d/networking restart 

4.测试与百度是否能够ping通

        ping www.baidu.com 

二、使用apt工具集安装Mplayer

1.sudo apt-get install mplayer 

3.将1.flv拷贝到虚拟机的~/Music文件夹下

测试是否能够播放媒体文件:

mplayer ~/Music/1.flv 

4.将a.out拷贝到虚拟机目录下

1.将a.out拷贝到当前目录下

2.修改a.out权限

chmod 0777 a.out 

3.执行a.out查看软件运行效果

./a.out 

项目2

基于Mplayer的视频播放器
1.需求分析:
    1.该程序能够加载指定路径下所有的音视频文件
    (.mp3 .mp4 .avi .rm .rmvb .flv .wma)
    2.能够通过界面操作视频播放器
        支持:
            上键
            下键
            回车
            ESC
        支持:
            焦点定位
            
        1.一级页面功能如下:
        +-------------------+
        |     视频播放器    |
        |-------------------|
        |1.查看播放列表        |
        |2.开始/暂停        |
        |3.停止             |
        |4.上一个           |
        |5.下一个           |
        |6.快进             |
        |7.定位             |
        |8.播放方式            |
        |9.退出             |
        +-------------------+

        查看播放列表二级页面如下:
        +-------------------+
        |     视频播放器    |
        |-------------------|
        |1.张三的歌.mp4     |
        |2.李四的曲.avi     |
        |...                |
        +-------------------+

        定位的二级页面
        +-------------------+
        |     视频播放器    |
        +-------------------+
        定位:XX:XX:XX
    
    3.在一级页面启动播放列表功能,进入二级页面,
      焦点定位到对应歌曲按下enter播放歌曲,按下
      ESC按键能够返回一级页面
    
    4.在一级页面启动下一个功能,能够播放下一个音
      视频文件,如果到达最末尾则提示:最后一首歌曲
      
    5.在一级页面启动上一个功能,能够播放上一个音
      视频文件,如果到达最前面则提示:第一首歌曲

    6.在一级页面启动快进功能,能够按倍速播放,
      第一次选择启动2倍速播放
      第二次选择启动4倍速播放
      第三次选择返回1倍速播放(默认)
      周而复始
      
    7.在一级页面启动开始功能,
      如果音视频正在播放,则暂停播放
      如果音视频正在暂停,则继续播放
      如果音视频文件没有播放,则按照
      播放方式(1.顺序循环 2.单曲循环 3.随机播放)
      播放歌曲
    
    8.在一级页面启动停止功能:
      如果音视频文件没有播放,则提示:未播放音视频文件
      如果音视频正在播放,则停止当前播放内容
    
    9.在一级页面启动定位功能:
      如果定位在音视频文件播放时间内,则跳到对应位置播放
      如果定位位置超过文件播放时间,则提示:定位错误
    
    10.播放方式
      在一级页面启动播放方式功能:
      第一次选择启动单曲循环
      第二次选择启动随机播放
      第三次选择返回顺序循环(默认)

    11.在一级页面启动退出功能:
        则程序退出