Centos6.3 重新安装yum

不知道怎么弄的,Yum 不见了,所以需要重新安装,但是找不到源了,163和阿里云的都不行。一顿搜索,发现这里可以。https://vault.centos.org/6.3/os/x86_64/Packages/

然后按照这个步骤来:

  1. 查看有无 yum安装包 ,有的话卸载:

查看:rpm -qa |grep yum

卸载:rpm -aq|grep yum|xargs rpm -e –nodeps

2. 到上面的网址下载如下安装包,复制连接地址,然后wget

python-iniparse-0.3.1-2.1.el6.noarch.rpm

yum-metadata-parser-1.1.2-16.1.el6.x86_64.rpm

yum-3.2.29-30.el6.centos.noarch.rpm

yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm

3.下载后然后rpm安装

rpm -ivh –force –nodeps python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh –force –nodeps yum-metadata-parser-1.1.2-16.1.el6.x86_64.rpm
rpm -ivh –force –nodeps yum-3.2.29-30.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm

4. 再然后就是

yum check-update
yum update
yum clean all

成功。

一款可以连接MIDI电子鼓的音乐APP

DrumKaKa —— 一款可以连接MIDI电子鼓的音乐app, 一共有两种模式可以使用,游戏模式+鼓谱模式,目前只提供安卓版本的。

 

 

游戏模式:水果掉落到相应位置,敲击相应的电子鼓即可,也可以用手指直接在手机屏幕上面玩。

游戏演示视频看这里:

 

鼓谱模式:鼓谱跟随音乐播放位置滚动,音符根据实际音符实时显示为红色。

乐谱显示视频看这里:

曲库可以下载,收藏,并且有教学:

对于不同的电子鼓可以自行设置鼓的对应位置。

特别提示:只能使用手机注册,注册完成后可以用平板用用户名密码登陆。一个账号可以登陆4台设备使用。

使用前需要一根MIDI线缆连,一个OTG USB转接头来连接接乐器和手机,手机打开开发者模式,USB选择Midi,具体如下:

midi线缆和OTG转接头,注意你自己手机的接头。

1、打开开发者模式,见这篇文章

2. 剩余步骤如下:

 

 

 

Ajax 提交POST后,后台php 无法获取$POST值

当 contentType 为 application/x-www-form-urlencoded 时(默认值)
才能用 $_POST 得到传入的数据。但是使用 application/json;charset=utf-8
不是 php 所能识别的类型声明,不能替你解析。所以只能用 php://input 取得,并用 parse_str 自行解析

而形如 a=1&b=2&c=3 这样的数据,分明就不是 json 格式。即便 php 能识别 application/json 类型,也不能解析你这样的数据。

当然还有一种方式:

前台(部分):

$.ajax({
url:’http://127.0.0.1/dist/example/qian.php’,
type:’POST’,
contentType:’application/json;charset=utf-8′,
dataType:’json’,
data: JSON.stringify({images:”dadad”}),

 

后台(部分):

header(‘Content-type: application/json’);

$data = json_decode(file_get_contents(“php://input”), true);
$user = $data[“images”];

安装和激活谷歌访问助手

  1. 下载访问助手
  2. 下载谷歌浏览器Chrome
  3. 打开谷歌浏览器,点击右上角设置,然后打开更多工具,找到并点击打开扩展程序
  4. 打开刚才下载的.rar的文件,解压。打开Chrome浏览器的扩展程序管理界面,勾选开发者模式,点击“加载已解压的扩展程序”按钮,选择已解压的Chrome插件文件夹。
  5. 点击确认,Chrome插件便成功加载到Google Chrome中啦。

flutter findAncestorStateOfType错误

The method ‘findAncestorStateOfType’ was called on null. Receiver: null Tried calling: findAncestorStateOfType<NavigatorState>()

出现上述错误的情况是由一个对话框需要导航到另外一个页面出现的,最后修复了,是没有导入BuildContext所致。

Flutter List.map()时获取索引值index

list =

List songListByUser = [
  {“score”: “A-“, “歌名”: “童年”, ‘id’: 1},
  {“score”: “C+”, “歌名”: “之乎者也”, ‘id’: 2},
  {“score”: “B+”, “歌名”: “野百合春天”, ‘id’: 3},
  {“score”: “D+”, “歌名”: “恋曲1990”, ‘id’: 4},
  {“score”: “D+”, “歌名”: “恋曲”, ‘id’: 5},
  {“score”: “B-“, “歌名”: “歌”, ‘id’: 6},
];
    return list
        .asMap()
        .keys
        .map((value) => ListTile(
              leading: Icon(
                Icons.music_note,
                color: Colors.green,
              ),
              trailing: Icon(Icons.keyboard_arrow_right),
              title: Text(list[value][‘歌名’].toString()),
              onTap: () {
                var mapstr = json.encode(list[value]).toString();
              },
            ))
        .toList();

Flutter 动态更新CircleAvatar的图片

CircleAvatar有一个参数是 backgroundImage, 它是一个Imageprovider. 通过选择手机图片或者拍照后,获取到的是一个PickedFile , 我用的是

image_picker: ^0.6.7+17插件
PickedFile _imageFile;
    ImagePicker imagePicker = ImagePicker();
    var image = await imagePicker.getImage(source: imageSource);
    setState(() {
      _imageFile = image;
      _avatarImage = File(image.path);
    });
定义一个文件类型的变量_avatarImage, 然后通过Image.file(_avatarImage).image 赋值给backgroundImage就行了。AssetImage(“assets/images/cat.jpg”)是默认值。
File _avatarImage;
backgroundImage: _avatarImage == null
                      ? AssetImage(“assets/images/cat.jpg”)
                      : Image.file(_avatarImage).image,

Flutter 如何将方法当做一个变量传递

如下所示,其中action 就是函数,写成void Function() action, 其它地方调用的时候就 tapBlueText(“文本”, action), action这里不用括号 action().

Widget tapBlueText(String text, void Function() action) {
    return GestureDetector(
      onTap: action,
      child: Text(
        text
      ),
    );
  }

Flutter List 或Map数据转ListView

数据清单如下:
List songListByUser = [
  {“score”: “A-“, “歌名”: “童年”, ‘id’: 1},
  {“score”: “C+”, “歌名”: “之乎者也”, ‘id’: 2},
  {“score”: “B+”, “歌名”: “野百合春天”, ‘id’: 3},
  {“score”: “D+”, “歌名”: “恋曲1990”, ‘id’: 4},
  {“score”: “D+”, “歌名”: “恋曲”, ‘id’: 5},
  {“score”: “B-“, “歌名”: “歌”, ‘id’: 6},
];
返回为List<Widget>
List<Widget> _listViewByUser() {
  return songListByUser
      .map((f) => ListTile(
            leading: Icon(
              Icons.music_note,
              color: Colors.green,
            ),
            trailing: Icon(Icons.keyboard_arrow_right),
            title: Text(f[‘歌名’].toString() + ‘(‘ + f[‘score’].toString() + ‘)’),
            onTap: () => print(f[‘id’].toString()),
          ))
      .toList();
}
在需要使用的地方

 children: _listViewByUser(),

Win10 下ogg文件改名很卡的解决办法

用dos命令来改名或者删除即可。

1. CMD 命令打开Dos窗口,

2. cd 到该文件的目录,例如到c:\music

cd c:\music

3. 删除文件就是 del 文件名称,比如删除1.ogg的文件就是

del 1.ogg

4. 如果想把1.ogg改成2.ogg 就是这样

rename 1.ogg 2.ogg 就行了