WP8开发(6)--------------小程序---声音库播放

一:运行预览

二:解决方案截图

三:主要代码

程序入口:App.xaml
using System;
using System.Diagnostics;
using System.Resources;
using System.Windows;
using System.Windows.Markup;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using 声音库.Resources;
using 声音库.ViewModels;

namespace 声音库
{
    public partial class App : Application//程序的入口
    {
  //粗体为主要自写代码
        private static SoundModel viewModel = null;//软件整个的模板
        public static SoundModel ViewModel//属性:如果模板为空加载数据
        {
            get
            {
                if (viewModel == null)
                {
                    viewModel = new SoundModel();
                    viewModel.LoadData();
                }

                return viewModel;
            }
        }
        /// <summary>
        /// 提供对电话应用程序的根框架的轻松访问。
        /// </summary>
        /// <returns>电话应用程序的根框架。</returns>
        public static PhoneApplicationFrame RootFrame { get; private set; }

        /// <summary>
        /// Application 对象的构造函数。
        /// </summary>
        public App()
        {
            // 未捕获的异常的全局处理程序。
            UnhandledException += Application_UnhandledException;

            // 标准 XAML 初始化
            InitializeComponent();

            // 特定于电话的初始化
            InitializePhoneApplication();

            // 语言显示初始化
            InitializeLanguage();

            // 调试时显示图形分析信息。
            if (Debugger.IsAttached)
            {
                // 显示当前帧速率计数器
                Application.Current.Host.Settings.EnableFrameRateCounter = true;

                // 显示在每个帧中重绘的应用程序区域。
                //Application.Current.Host.Settings.EnableRedrawRegions = true;

                // 启用非生产分析可视化模式,
                // 该模式显示递交给 GPU 的包含彩色重叠区的页面区域。
                //Application.Current.Host.Settings.EnableCacheVisualization = true;

                // 通过禁用以下对象阻止在调试过程中关闭屏幕
                // 应用程序的空闲检测。
                //  注意: 仅在调试模式下使用此设置。禁用用户空闲检测的应用程序在用户不使用电话时将继续运行
                // 并且消耗电池电量。
                PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
            }
        }

        // 应用程序启动(例如,从“开始”菜单启动)时执行的代码
        // 此代码在重新激活应用程序时不执行
        private void Application_Launching(object sender, LaunchingEventArgs e)
        {
        }

        // 激活应用程序(置于前台)时执行的代码
        // 此代码在首次启动应用程序时不执行
        private void Application_Activated(object sender, ActivatedEventArgs e)
        {
            // 确保正确恢复应用程序状态
            if (!App.ViewModel.IsDataLoaded)
            {
                App.ViewModel.LoadData();
            }
        }

        // 停用应用程序(发送到后台)时执行的代码
        // 此代码在应用程序关闭时不执行
        private void Application_Deactivated(object sender, DeactivatedEventArgs e)
        {
        }

        // 应用程序关闭(例如,用户点击“后退”)时执行的代码
        // 此代码在停用应用程序时不执行
        private void Application_Closing(object sender, ClosingEventArgs e)
        {
            // 确保所需的应用程序状态在此处保持不变。
        }

        // 导航失败时执行的代码
        private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
        {
            if (Debugger.IsAttached)
            {
                // 导航已失败;强行进入调试器
                Debugger.Break();
            }
        }

        // 出现未处理的异常时执行的代码
        private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
        {
            if (Debugger.IsAttached)
            {
                // 出现未处理的异常;强行进入调试器
                Debugger.Break();
            }
        }

        #region 电话应用程序初始化

        // 避免双重初始化
        private bool phoneApplicationInitialized = false;

        // 请勿向此方法中添加任何其他代码
        private void InitializePhoneApplication()
        {
            if (phoneApplicationInitialized)
                return;

            // 创建框架但先不将它设置为 RootVisual;这允许初始
            // 屏幕保持活动状态,直到准备呈现应用程序时。
            RootFrame = new PhoneApplicationFrame();
            RootFrame.Navigated += CompleteInitializePhoneApplication;

            // 处理导航故障
            RootFrame.NavigationFailed += RootFrame_NavigationFailed;

            // 在下一次导航中处理清除 BackStack 的重置请求,
            RootFrame.Navigated += CheckForResetNavigation;

            // 确保我们未再次初始化
            phoneApplicationInitialized = true;
        }

        // 请勿向此方法中添加任何其他代码
        private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
        {
            // 设置根视觉效果以允许应用程序呈现
            if (RootVisual != RootFrame)
                RootVisual = RootFrame;

            // 删除此处理程序,因为不再需要它
            RootFrame.Navigated -= CompleteInitializePhoneApplication;
        }

        private void CheckForResetNavigation(object sender, NavigationEventArgs e)
        {
            // 如果应用程序收到“重置”导航,则需要进行检查
            // 以确定是否应重置页面堆栈
            if (e.NavigationMode == NavigationMode.Reset)
                RootFrame.Navigated += ClearBackStackAfterReset;
        }

        private void ClearBackStackAfterReset(object sender, NavigationEventArgs e)
        {
            // 取消注册事件,以便不再调用该事件
            RootFrame.Navigated -= ClearBackStackAfterReset;

            // 只为“新建”(向前)和“刷新”导航清除堆栈
            if (e.NavigationMode != NavigationMode.New && e.NavigationMode != NavigationMode.Refresh)
                return;

            // 为了获得 UI 一致性,请清除整个页面堆栈
            while (RootFrame.RemoveBackEntry() != null)
            {
                ; // 不执行任何操作
            }
        }

        #endregion

        // 初始化应用程序在其本地化资源字符串中定义的字体和排列方向。
        //
        // 若要确保应用程序的字体与受支持的语言相符,并确保
        // 这些语言的 FlowDirection 都采用其传统方向,ResourceLanguage
        // 应该初始化每个 resx 文件中的 ResourceFlowDirection,以便将这些值与以下对象匹配
        // 文件的区域性。例如:
        //
        // AppResources.es-ES.resx
        //    ResourceLanguage 的值应为“es-ES”
        //    ResourceFlowDirection 的值应为“LeftToRight”
        //
        // AppResources.ar-SA.resx
        //     ResourceLanguage 的值应为“ar-SA”
        //     ResourceFlowDirection 的值应为“RightToLeft”
        //
        // 有关本地化 Windows Phone 应用程序的详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=262072。
        //
        private void InitializeLanguage()
        {
            try
            {
                // 将字体设置为与由以下对象定义的显示语言匹配
                // 每种受支持的语言的 ResourceLanguage 资源字符串。
                //
                // 如果显示出现以下情况,则回退到非特定语言的字体
                // 手机的语言不受支持。
                //
                // 如果命中编译器错误,则表示以下对象中缺少 ResourceLanguage
                // 资源文件。
                RootFrame.Language = XmlLanguage.GetLanguage(AppResources.ResourceLanguage);

                // 根据以下条件设置根框架下的所有元素的 FlowDirection
                // 每个以下对象的 ResourceFlowDirection 资源字符串上的
                // 受支持的语言。
                //
                // 如果命中编译器错误,则表示以下对象中缺少 ResourceFlowDirection
                // 资源文件。
                FlowDirection flow = (FlowDirection)Enum.Parse(typeof(FlowDirection), AppResources.ResourceFlowDirection);
                RootFrame.FlowDirection = flow;
            }
            catch
            {
                // 如果此处导致了异常,则最可能的原因是
                // ResourceLangauge 未正确设置为受支持的语言
                // 代码或 ResourceFlowDirection 设置为 LeftToRight 以外的值
                // 或 RightToLeft。

                if (Debugger.IsAttached)
                {
                    Debugger.Break();
                }

                throw;
            }
        }
    }
}
界面代码MainPage.xaml
<phone:PhoneApplicationPage
    x:Class="声音库.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"

    d:DataContext="{d:DesignData SampleData/SampleData.xaml}" 

    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait"  Orientation="Portrait"
    shell:SystemTray.IsVisible="True">

    <!--data每一项的设置-->
    <phone:PhoneApplicationPage.Resources>
        <DataTemplate x:Key="SoundTitleDataTemplate">
            <Grid Background="{StaticResource PhoneAccentBrush}"
                  Margin="0,0,12,12">
                <Grid VerticalAlignment="Top"
                                      HorizontalAlignment="Right"
                                      Width="40"
                                      Height="40"
                                      Margin="0,6,6,0">
                    <Ellipse Stroke="{StaticResource PhoneForegroundBrush}"
                                             StrokeThickness="3"></Ellipse>
                    <Image Source="/Assets/AppBar/play.png"></Image>
                </Grid>
                <StackPanel VerticalAlignment="Bottom">
                    <TextBlock Text="{Binding Title}" Margin="6,0,0,6"></TextBlock>
                </StackPanel>
            </Grid>
        </DataTemplate>
    </phone:PhoneApplicationPage.Resources>

    <!--LayoutRoot 是包含所有页面内容的根网格-->
    <Grid x:Name="LayoutRoot" Background="Transparent">

        <MediaElement Name="AudioPlayer"
                      Volume="1"></MediaElement>

        <!--model的设置-->
        <phone:Pivot Title="{Binding Path=LocalizedResources.ApplicationTitle,
            Source={StaticResource LocalizedStrings}}">
            <!--group的页的设置-->
            <phone:PivotItem Header="{Binding Animals.Title}">
                <phone:LongListSelector Margin="0,0,-12,0"
                                        ItemsSource="{Binding Animals.Items}"
                                        LayoutMode="Grid"
                                        GridCellSize="150,150"
                                        ItemTemplate="{StaticResource SoundTitleDataTemplate}"
                                        SelectionChanged="LongListSelector_SelectionChanged">
                </phone:LongListSelector>
            </phone:PivotItem>

            <!--group的页的设置-->
            <phone:PivotItem Header="{Binding Cartoons.Title}">
                <phone:LongListSelector Margin="0,0,-12,0" ItemsSource="{Binding Cartoons.Items}"
                                         LayoutMode="Grid"
                                        GridCellSize="150,150"
                                        ItemTemplate="{StaticResource SoundTitleDataTemplate}"
                                        SelectionChanged="LongListSelector_SelectionChanged">
                </phone:LongListSelector>
            </phone:PivotItem>

            <!--group的页的设置-->
            <phone:PivotItem Header="{Binding Warnings.Title}">
                <phone:LongListSelector Margin="0,0,-12,0" ItemsSource="{Binding Warnings.Items}"
                                         LayoutMode="Grid"
                                        GridCellSize="150,150"
                                        ItemTemplate="{StaticResource SoundTitleDataTemplate}"
                                        SelectionChanged="LongListSelector_SelectionChanged">
            </phone:LongListSelector>
        </phone:PivotItem>
        </phone:Pivot>

        <!--group的页的设置-->
        <phone:PivotItem Header="{Binding Taunts.Title}">
            <phone:LongListSelector Margin="0,0,-12,0" ItemsSource="{Binding Taunts.Items}"
                                     LayoutMode="Grid"
                                      GridCellSize="150,150"
                                    ItemTemplate="{StaticResource SoundTitleDataTemplate}"
                                    SelectionChanged="LongListSelector_SelectionChanged">
            </phone:LongListSelector>
        </phone:PivotItem>

    </Grid>

</phone:PhoneApplicationPage>
自定义的三个类:SoundModel、SoundGroup、SoundData

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 声音库.ViewModels
{
    public class SoundModel
    {
        //五个分组
        public SoundGroup Animals { get; set; }
        public SoundGroup Cartoons { get; set; }
        public SoundGroup Warnings { get; set; }
        public SoundGroup Taunts { get; set; }

        public SoundGroup CustomSounds { get; set; }

        //是否加载数据
        public bool IsDataLoaded { get; set; }

        public void LoadData()//方法:加载数据
        {
            Animals = CreateAnimalsGroup();
            Cartoons = CreateCartoonsGroup();
            Taunts = CreateTauntsGroup();
            Warnings = CreateWarningsGroup();

            IsDataLoaded = true;
        }
        //加载数据的具体方法
        private SoundGroup CreateAnimalsGroup()
        {
            SoundGroup data = new SoundGroup();//实例化一个组
            data.Title = "动物";//组名
            string basePath = "assets/audio/animals/";//路径的相同部分

            data.Items.Add(new SoundData//组加上项
            {
                Title = "小猫叫",//数据标题
                FilePath = basePath + "Cat Kitten.wav"//完整音频的路径
            });

            data.Items.Add(new SoundData
            {
                Title = "老猫叫",
                FilePath = basePath + "Cat Meow.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "猩猩叫",
                FilePath = basePath + "Chimpanzee.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "牛",
                FilePath = basePath + "Cow.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "蛐蛐叫",
                FilePath = basePath + "Crickets.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "狗叫",
                FilePath = basePath + "Dog.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "海豚叫",
                FilePath = basePath + "Dolphin.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "鸭叫",
                FilePath = basePath + "Duck.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "马跑声",
                FilePath = basePath + "Horse Gallop.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "马走声",
                FilePath = basePath + "Horse Walk.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "狮子叫",
                FilePath = basePath + "Lion.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "猪叫",
                FilePath = basePath + "Pig.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "鸡打鸣",
                FilePath = basePath + "Rooster.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "羊叫",
                FilePath = basePath + "Sheep.wav"
            });

            return data;
        }

        private SoundGroup CreateCartoonsGroup()
        {
            SoundGroup data = new SoundGroup();
            data.Title = "卡通";
            string basePath = "assets/audio/cartoons/";

            data.Items.Add(new SoundData
            {
                Title = "啵嘤",
                FilePath = basePath + "Boing.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "枪声",
                FilePath = basePath + "Bronk.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "军号",
                FilePath = basePath + "Bugle charge.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "激光器",
                FilePath = basePath + "Laser.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "开溜",
                FilePath = basePath + "Out Here.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "啪嗒声",
                FilePath = basePath + "Splat.wav"
            });

            return data;
        }

        private SoundGroup CreateTauntsGroup()
        {
            SoundGroup data = new SoundGroup();
            data.Title = "愚弄";
            string basePath = "assets/audio/taunts/";

            data.Items.Add(new SoundData
            {
                Title = "咯咯笑",
                FilePath = basePath + "Cackle.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "滴答声",
                FilePath = basePath + "Clock Ticking.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "拨号声",
                FilePath = basePath + "Dial up.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "击鼓",
                FilePath = basePath + "Drum roll.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "电梯音乐",
                FilePath = basePath + "Elevator Music.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "大笑",
                FilePath = basePath + "Laugh.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "淫笑",
                FilePath = basePath + "Laugh - Evil.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "白花钱",
                FilePath = basePath + "Wrong Price.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "伤感长号",
                FilePath = basePath + "Sad Trombone.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "挖苦的O",
                FilePath = basePath + "Sarcastic Ooo.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "叹气",
                FilePath = basePath + "Sigh.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "打呼噜",
                FilePath = basePath + "Snore.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "打哈欠",
                FilePath = basePath + "Yawn.wav"
            });

            return data;
        }

        private SoundGroup CreateWarningsGroup()
        {
            SoundGroup data = new SoundGroup();
            data.Title = "警告";
            string basePath = "assets/audio/warnings/";

            data.Items.Add(new SoundData
            {
                Title = "汽笛",
                FilePath = basePath + "Air horn.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "空袭",
                FilePath = basePath + "Air Raid.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "闹钟 - 电报",
                FilePath = basePath + "Alarm Clock - Electric.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "闹钟 - 电话",
                FilePath = basePath + "Alarm Clock - Bell.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "抢救",
                FilePath = basePath + "Backing up.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "钟声",
                FilePath = basePath + "Bell - Church.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "上课铃声",
                FilePath = basePath + "Bell - School.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "电雾号",
                FilePath = basePath + "Fog horn.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "打碎玻璃",
                FilePath = basePath + "Glass breaking.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "错误警报",
                FilePath = basePath + "Missle alert.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "急救",
                FilePath = basePath + "Police - UK.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "警察",
                FilePath = basePath + "Police - US.wav"
            });

            data.Items.Add(new SoundData
            {
                Title = "呜呜祖拉",
                FilePath = basePath + "Vuvuzela.wav"
            });

            return data;
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 声音库.ViewModels
{
    public class SoundGroup
    {
        public SoundGroup()//构造函数,实例化存放数据项的属性
        {
            Items = new List<SoundData>();
        }
        public List<SoundData> Items { get; set; }//属性:用于存放数据项
        public string Title { get; set; }//组的标题
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 声音库.ViewModels
{
    public class SoundData
    {
        public string Title { get; set; }//数据项的标题
        public string FilePath { get; set; }//数据项的路径
    }
}

窗体设计实例数据SampleData.xaml
<vm:SoundModel
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:vm="clr-namespace:声音库.ViewModels"><!--命名空间-->

<!--设计窗体时的数据-->
    <vm:SoundModel.Animals>
        <vm:SoundGroup Title="Animals Sample">
            <vm:SoundGroup.Items>
                <vm:SoundData Title="Animals 1" FilePath="Animals.wav" />
            </vm:SoundGroup.Items>
        </vm:SoundGroup>
    </vm:SoundModel.Animals>

    <vm:SoundModel.Cartoons>
        <vm:SoundGroup Title="Cartoons Sample">
            <vm:SoundGroup.Items>
                <vm:SoundData Title="Cartoons 1" FilePath="Cartoons.wav" />
                <vm:SoundData Title="Cartoons 2" FilePath="Cartoons.wav" />
            </vm:SoundGroup.Items>
        </vm:SoundGroup>
    </vm:SoundModel.Cartoons>

    <vm:SoundModel.Taunts>
        <vm:SoundGroup Title="Taunts Sample">
            <vm:SoundGroup.Items>
                <vm:SoundData Title="Taunts 1" FilePath="Taunts.wav" />
                <vm:SoundData Title="Taunts 2" FilePath="Taunts.wav" />
                <vm:SoundData Title="Taunts 3" FilePath="Taunts.wav" />
            </vm:SoundGroup.Items>
        </vm:SoundGroup>
    </vm:SoundModel.Taunts>

    <vm:SoundModel.Warnings>
        <vm:SoundGroup Title="Warnings Sample">
            <vm:SoundGroup.Items>
                <vm:SoundData Title="Warnings 1" FilePath="Warnings.wav" />
                <vm:SoundData Title="Warnings 2" FilePath="Warnings.wav" />
                <vm:SoundData Title="Warnings 3" FilePath="Warnings.wav" />
                <vm:SoundData Title="Warnings 4" FilePath="Warnings.wav" />
            </vm:SoundGroup.Items>
        </vm:SoundGroup>
    </vm:SoundModel.Warnings>

    <vm:SoundModel.CustomSounds>
        <vm:SoundGroup Title="Custom">
            <vm:SoundGroup.Items>
                <vm:SoundData Title="Custom 1" FilePath="Custom.wav" />
                <vm:SoundData Title="Custom 2" FilePath="Custom.wav" />
                <vm:SoundData Title="Custom 3" FilePath="Custom.wav" />
                <vm:SoundData Title="Custom 4" FilePath="Custom.wav" />
            </vm:SoundGroup.Items>
        </vm:SoundGroup>
    </vm:SoundModel.CustomSounds>

</vm:SoundModel>

四:总结

总的来说该程序还不是太完善,本来想这把程序也上传,但大笑已经超过上传的10M上限,这里已将全部自写代码贴出

时间: 2024-10-03 03:06:38

WP8开发(6)--------------小程序---声音库播放的相关文章

利用WordPress REST API 开发微信小程序从入门到放弃

自从我发布并开源WordPress版微信小程序以来,很多WordPress网站的站长问有关程序开发的问题,其实在文章:<用微信小程序连接WordPress网站>讲述过一些基本的要点,不过仍然有不少人对一些细节不明白,于是我就想着再写一篇比较全面而基础的教程,主要针对入门级别用户,高手就不用看了. WordPress版“守望轩”微信小程序开放源码地址:https://github.com/iamxjb/winxin-app-watch-life.net 至于标题,请原谅我,我标题党了. Word

小程序直播功能开发经过 开发直播小程序的过程 微信直播小程序 直播答题小程序开发 小程序怎么做直播

公司要开发一个直播的小程序,现在直播小程序应用场景也很多.比如电商的直播,在线直播购物下单.还有就是一些教育类的,小程序直播答题.也研究了下微信小程序的直播文档,然后百度也搜了下各位前辈的开发历程.这里我总结下我开发的一些经过. 首先你要注册好一个你的小程序,然后申请小程序的类目,只要下面这些类目你能申请到就可以开通小程序的直播功能.然后就开始开发啦. 如下是微信小程序的要求: 暂只针对如下类目开放,需要先通过类目审核,再在小程序管理后台,"设置"-"接口设置"中自

Taro开发微信小程序

Taro开发微信小程序 https://www.cnblogs.com/rynxiao/p/9230237.html 了解Taro 听说Taro是从几个星期前开始的,在一次饭桌上,一个小伙伴说:"Hey, 你听说了Taro么,听说只需要写一套程序就可以生成H5,小程序以及RN的代码模板,并且类似于React的语法.""哦?还有这么好的事,赶紧研究一下." Taro初体验 去官网,Github了解了一下,Taro是由京东·凹凸实验室团队开发的,在掘金上看到他们的发稿,

webstorm开发微信小程序代码提醒(webstorm开发工具)

使用了微信提供的开发工具是真心难用,卡顿厉害.中英文切写注释换相当不爽.还没办法多开窗口,相信大家也遇到过这种现象. 下边我们介绍下webstorm来开发微信小程序的一些配置: 1.首先FileType下Cascading Style Sheet 添加*.wxss 1.png 2.FileType下HTML 添加*.wxml 2.png 3.将其中的wecharCode.jar下载下来,然后在webStorm 的 File -> import settings 中导入即可 3.png 配置已经完

微信小程序_微信小程序开发,小程序源码、案例、教程

原文地址:http://whosmall.com/?post=448 本文标签: 微信小程序 小程序源码案例 小程序项目 小程序源码 微信小程序教程 什么是微信小程序? 微信小程序是微信基于微信平台的一个应用发布平台,微信小程序app开发属于原生app组件提供js接口的开发方式,比混合是app的用户体验更好,仅次于原生应用. 不过微信小程序定位于小,要符合轻量易用无需下载,所以从体积上也是有限制,整个小程序应用体积不能超过1M. 微信小程序的应用场景? 微信小程序的应用场景适用于轻量应用,非强交

如何使用微信小程序video组件播放视频

相信很多人都有在手机上看视频的习惯,比较看视频更真实更形象.那么我们在微信小程序中如何观看视频呢?这就需要video组件的帮忙了.今天我们就给大家演示一下,如何用微信小程序组件video播放视频.我们在网络上随便找了一个简短的视频源.video组件的引用格式如下: [AppleScript] 纯文本查看 复制代码 ? 1 <video src="http://www.w3school.com.cn//i/movie.mp4" binderror="videoErrorC

什么行业适合开发微信小程序?

这段时间,随着微信小程序的系列大动作,商家选择开发微信小程序的越来越多,那么各行业开发微信小程序的优势究竟是什么呢? 总体来说,微信小程序开发优势: 1.便于分享:(小程序或其中任何一个界面都可以任意分享) 2.方便切换:(用户在使用小程序时,可以快速返回聊天) 3.消息推送:(商家可以随时发送商城消息给服务过的用户) 4.历史列表:(用户使用过的小程序会被放入列表,方便查询使用) 5.扫码使用:(用户扫一扫即可使用) 社动电商 微信小程序适用行业: 外卖点餐系统.上门服务系统.交通系统.出门旅

微信+小程序购物系统开发微信小程序营销系统开发

行业+小程序的结合有无限可能性,想要玩转微信小程序,享受流量盛宴,可借助--河南鼎汉科技,帮您快速打造具有个性化特色的微信小程序.微信小程序系统开发平台.微信小程序购物商城系统开发1.8.8-3.8.07-6.8.0.5电/微, 微信小程序 微商城 微信小程序营销系统开发,微信公众平台订阅号,微信小程序购物商城系统开发定制. 在移动互联网时代从来不缺分销系统,随着移动电商.传统电商.传统商业企业纷纷进入社交电商领域,社交电商正在向专业平台化.团队规模化.渠道立体化.运作规范化等趋势发展.微信"小

使用Sublime Text开发微信小程序

因为sublime只是敲代码的地方,最终运行结果还是得看官方的IDE,所以使用sublime开发微信小程序的流程是这样的: 创建小程序项目,直接将整个项目文件夹拖入sublime,即可在sublime里面进行编辑,而官方的IDE就只是单纯用来调试用的!!! 让代码提示加速你的编码速度 如今上架了微信小程序,果不其然,大神们开始写专属微信小程序的snippets(sublime通过 "Sublime-snippet" 实现快速补全代码),群友们也提供了插件下载的链接:https://gi