Skip to content

Instantly share code, notes, and snippets.

View niusounds's full-sized avatar
🤘

Yuya Matsuo niusounds

🤘
View GitHub Profile
@niusounds
niusounds / async_data.dart
Last active September 19, 2019 04:08
Asynchronous data management widget.
import 'package:flutter/material.dart';
typedef AsyncDataBuilder<T> = Widget Function(BuildContext, T);
typedef AsyncErrorBuilder = Widget Function(BuildContext, dynamic);
/// 非同期データの取得を管理するWidget。
/// 初回ビルド時に非同期データを取得し、[builder]が返却するWidgetをビルドする。
/// その後、必要に応じて非同期データの再取得を行い、Widgetを再構築する。
///
/// [refreshOnDidPopNext]をtrueにすると、[Navigator.pop]でこのWidgetが含まれる画面に戻ってきた時に再取得する。
<activity
android:name=".MainActivity"
...>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="handle" android:scheme="myscheme" />
</intent-filter>
</activity>
@niusounds
niusounds / main.dart
Created June 18, 2019 01:34
CustomMultiChildLayoutの使い方
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
@niusounds
niusounds / ffserver.js
Created April 19, 2019 04:05
ffmpeg live transcode test
const express = require('express')
const app = express()
const { spawn } = require('child_process');
const URL = 'https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8'
app
.get('/video.webm', (req, res) => {
res.type('video/webm')
@niusounds
niusounds / gist:51c9c23f349f492c29957f98e0adbfd7
Created March 28, 2019 02:20
convert video to animation WebP with infinite loop and appropriate size for web (ex. width=640px).
ffmpeg -y -i .\video.mp4 -loop 0 -vf scale=640:-1 output.webp
@niusounds
niusounds / rsa_pem.dart
Last active December 25, 2018 04:25 — forked from proteye/rsa_pem.dart
How to encode/decode RSA private/public keys to PEM format in Dart with asn1lib and pointycastle
import 'dart:convert';
import 'dart:math';
import 'dart:typed_data';
import "package:pointycastle/export.dart";
import "package:asn1lib/asn1lib.dart";
List<int> decodePEM(String pem) {
var startsWith = [
"-----BEGIN PUBLIC KEY-----",
"-----BEGIN PRIVATE KEY-----",
@niusounds
niusounds / GetContext.cs
Last active December 14, 2018 06:04
Get Android Activity (Context) reference from Unity C#
var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var activity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
@niusounds
niusounds / GearVRVideoPlayer.cs
Created March 11, 2016 12:12
GearVRVideoPlayer.csを反転球のオブジェクトに付けて、動画のパスを指定する。
using UnityEngine;
using System;
using System.Collections;
using System.Runtime.InteropServices;
public class VideoPlayer: MonoBehaviour {
public string videoPath;
public bool autoPlay = true;
@niusounds
niusounds / LocationLiveData.kt
Created June 29, 2018 03:06
Location wrapper for LiveData
import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity
import android.arch.lifecycle.LiveData
import android.content.Context
import android.content.pm.PackageManager
import android.location.Location
import android.os.Looper
import android.support.v4.app.ActivityCompat
import android.support.v4.content.ContextCompat
@niusounds
niusounds / 1 IPlayer.kt
Created December 6, 2017 07:06
Player interface abstracts MediaPlayer and ExoPlayer.
import android.content.Context
import android.graphics.SurfaceTexture
import android.net.Uri
import android.view.Surface
interface IPlayer {
/**
* コンテンツの全体時間を取得する。単位はミリ秒。
*/