谁还看电视?这样的提问,早几年或许只是数码发烧友的不屑。而今天,不看电视已是大势所趋。
国家新闻出版广电总局发展研究中心发布的《中国视听新媒体发展报告(2013)》用数字印证了人们的猜测:北京地区电视机开机率从三年前的70%下降至30%。青年人都转向了电脑、平板和智能手机,网络已经成为收看热播电视剧的主要渠道。而40岁以上者成了收看电视的主流人群。
电视还有救吗?如果从电视内容来看,中国电视的创造力依然蓬勃旺盛。不管是《甄嬛传》、《步步惊心》、《心术》等电视剧,还是《中国好声音》、《我是歌手》等万人空巷的综艺节目,这些好作品依然吸引着万千观众的眼球,在微博、贴吧等社交媒体里激起一次次讨论热潮。
只是,越来越多的人,或者人们把越来越多的时间,从电视前挪开,不去忍受无法掐断的广告;而是选择平板、电脑和手机,在地铁、公共汽车等旅途,在自己控制的零碎和休闲时间,去观看自己挑选的节目。
这是一次乾坤大挪移,如果和电视相关的各方——电视台、电视机厂家以及所有习惯了灌输式可控式传播的人们,不去拥抱互联网,那么他们最终都会被汹涌的技术浪潮和改变了习惯的人流所淘汰,变成无人问津的死角。
用一句话来形容这一转变,那就是广播模式的式微,自助点播模式的兴起。后者的实质就是互联网模式在电视领域的应用。其实,电视产业正处在变革的前夜。我们可以用手机产业来做一个类比:当年乔布斯以iPhone横空出世,用电脑+互联网的模式,完成了对传统手机的颠覆。今天,各种暗藏杀机的盒子,正在以类似的方式(智能设备+互联网开放体系),颠覆传统的电视产业。传统电视厂商如果不能拥抱变化,或许就会变成电视行业的摩托罗拉、诺基亚……当然,应对得当,也能变成三星。不过,三星电视自己显然更有潜质。
从互联网角度来看,电视只不过是一个显示设备罢了。你在手机、电脑上看的视频,使用的App(优酷、土豆、搜狐视频、爱奇艺……),也完全可以在电视上看。当然,这是一个极度简化的思路,实际操作起来还有各种实际问题,比如屏幕大小、分辨率的适配,不同屏幕颜色、明暗、对比度的微调,以及家中的网速能否支持视频流畅播放。另一大问题就是操控和输入方式的不同,电脑是通过鼠标和键盘,手机、平板通过触摸屏,而电视的最佳操控方式,应该还是遥控器。
不过,一切都不是问题,一切都在迎刃而解。五年前,人们很难想象手机的功能会跟电脑一样强大,毕竟,屏幕、操控、网速都跟不上嘛。但在苹果、Google的Android,以及各大运营商、手机厂商的努力下,短短几年,手机已经完全可以媲美电脑。下一个技术篇章,也会以极快的速度翻篇的。
这一次的主角,或许不是电视(你就把它当显示器吧),而是盒子。想象一下,把电脑的主机塞到盒子里,把键盘鼠标变成遥控器,一切不就完工了嘛。
带宽已不是问题,现在许多小区的宽带已达到20M、50M,完全胜任在线高清视频;硬件也已成熟,很多盒子的价格都在500元以下;更重要的是,一个开放的操作系统可以承载各种软件和视频内容。这一次的主角又是Android,在手机领域异军突起的绿色机器人,现在逐渐成为盒子里的标配。换句话说,各种Android应用稍加改造,就可以供电视盒子使用,互联网上多了越来越多的电视App,以及相关的app市场。
小米、乐视是这一阶段的先行者。“出头鸟”小米盒子在短暂搁浅后,3月首次发售,1万台几分钟就被抢购一空,4月又发布3万台,同样被“秒杀”。而乐视C1盒子发布时,5万台7小时售罄,C1S发布时5万台1小时售完。
其实,在小米、乐视这些大事声张的产品背后,还有一大群不知名的盒子(也被贴上高清播放器之类的标签),有人称之为山寨货。许多发烧友已经享受多年的福利:如果你家的宽带有5M以上的速度,只需将盒子插上网线,用HDMI接入电视,你就可以享受所有互联网视频(优酷、腾讯、搜狐、爱奇艺……)的海量电视、电影了。最近,以生产网卡、路由器著称的TP-LINK公司,甚至也推出了类似产品——TP Mini大眼睛。这个集成了路由器和机顶盒功能的产品,引起了不少发烧友的关注。
这么好的事情,为什么很多人不知道呢?这里有多方面原因。首先,这些盒子功能再强大,操作毕竟不如电视操作那么傻瓜,需要一些调试和设置。其次,也更重要的原因在于,电视盒子在中国仍然处于灰色地带。按国家有关政策,机顶盒是不能随便上互联网的。当然,以上提及的诸多盒子,是不是机顶盒呢?这就见仁见智了。
据国家广电总局于2011年颁发的《持有互联网电视牌照机构运营管理要求》(业内称181号文)专门规定,机顶盒产品只能跟有互联网电视牌照的内容网站合作,机顶盒“不能将公共互联网上的内容直接提供给用户”。
简单翻译一下,电视可以上网,但必须上指定的网站。
这个国度的某些事情,不是技术和商业常识可以揣度的。比如PS3、XBOX、WII等集中了全球最顶尖技术的游戏设备,你是无法在中国大陆通过正规渠道购买的。而其政策限制,据说是2000年颁布的某一项规定。而小米盒子遇到的曲折,Kindle入华的一唱三叹,背后都有类似的隐情。
阅历丰富的公司都渐渐学会了一招:当一项新产品无法被现有政策定义时,最好选择就是勇敢的做,但一定不要声张,更不要定性。以小米盒子而言,如果不把自己描述成电视机顶盒,而定位成压缩型的电脑主机或者手机配件,一切或许会顺畅得多。
当然,互联网化的视听变革,只是一种技术的可能性,数字电视、IPTV也在争夺和发展自己的用户和市场。更有悬念的问题是,硬件(电视、盒子)、网络传输(宽带接入商)、软件和内容方(各种视频服务公司)如何构建一个多方受益的模式,是订阅收费,还是广告分成?电视会和数字音乐、电子书一样,走向相对封闭的苹果App Store模式吗?新电视也需要苹果和亚马逊那样的巨头吗?一切仍是未知数。
抽象的说,技术、商业都不是最终话事人。当政策制定者以刻舟求剑的思路来规范管理新技术时,或许只有用户的选择和自我教育(自发使用新工具),才能最终决定新行业的地貌。
将时间戳转换为日期,如程序中获取到的时间戳为:1377921697453,转换为日期后为:2013年08月23日 12时01分37秒。
废话不说直接上源码:
package com.jinhoward.timestamptodate; import com.jinhoward.timestamptodate.R; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.text.SimpleDateFormat; import java.util.Date; public class TimestampToDateActivity extends Activity { private String TagforCallLogs; public void onCreate(Bundle paramBundle) { super.onCreate(paramBundle); setContentView(R.layout.activity_timestamp_to_date); Button changeToDateButton = (Button) findViewById(R.id.changeToDateButton); changeToDateButton.setOnClickListener(new View.OnClickListener() { public void onClick(View paramView) { EditText localEditText = (EditText) TimestampToDateActivity.this .findViewById(R.id.numberEditText); SimpleDateFormat localSimpleDateFormat = new SimpleDateFormat( "yyyy年MM月dd日 HH时mm分ss秒"); if (localEditText.getText().toString().equals("")) { Toast.makeText(TimestampToDateActivity.this, "您输入数值为空,请重新输入!", Toast.LENGTH_LONG).show(); return; } //点击时间转换按钮后隐藏输入法框 InputMethodManager inputMethodManager =(InputMethodManager)TimestampToDateActivity .this.getSystemService(INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(localEditText.getWindowToken(), 0); String str = localSimpleDateFormat.format(new Date(Long .parseLong(localEditText.getText().toString()))); TextView showTimetTextView =(TextView)findViewById(R.id.showTime); showTimetTextView.setText(str); // Log.v("stampToDate", Long.toString(System.currentTimeMillis())); } }); } }
xml文件源码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffc1eeee" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5.0dip" android:text="时间戳数值:" android:textSize="18.0sp" android:text /> <EditText android:id="@+id/numberEditText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5.0dip" android:focusable="true" android:hint="请输入时间戳数值(13位)" android:maxLength="13" android:inputType="number" /> <TextView android:id="@+id/changedTimeIs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5.0dip" android:text="转换后的日期为:" android:textSize="18.0sp" android:text /> <TextView android:id="@+id/showTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5.0dip" android:text=" " android:textSize="18.0sp" android:text /> <Button android:id="@+id/changeToDateButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5.0dip" android:text="开始时间戳转换为日期" android:textSize="18.0sp" android:text /> </LinearLayout>